在所有站点加载javascript,除了两个页面


Load a javascript in all site except two page

我在header部分有一个外部javascript,像这样:

<head>
<script type="text/javascript" src="myscript.js"></script>
</head>

这个javascript在网站的每个页面上创建了一个cookie法律的横幅。该横幅仅在您第一次进入网站时显示。

我想在所有网站加载这个javascript除了两个页面。我使用Wordpress和Genesis Framework。

我该怎么做呢?

要以典型的Wordpress方式加载脚本,您必须检查当前页面的ID。

// Main Scripts
function register_banner_js() {
    if (!is_admin()) {
        /* Get id of current page*/
        $page_id     = get_queried_object_id();
        /* Compare the non-relevant page's id with the current page's id, if they don't match, enqueue your banner script*/
        $ids = array(page_id_1, page_id_2);
        if (!in_array($page_id, $ids)){
            wp_register_script('bannerscript', 'path/to/your/bannerscript.js', 'jquery', null, TRUE);
            wp_enqueue_script('bannerscript');
        }
    } 
} 
add_action('wp_enqueue_scripts','register_banner_js')

将代码放入您的functions.php。请确保检查您的页面的id,并将它们放在ids数组中,该数组包含您的横幅不应该加载的所有相关页面的id。

如果你想了解更多关于Javascript enqueueing检查Wordpress Hook wp_enqueue_script。

尝试在页面模板的<head>...</head>中添加以下PHP,其中

<script src="bannerscript.js"></script>

通常写成:

<?php
$nobanner = array('page1','page2');
$page = $_SERVER['SCRIPT_NAME'];
$page = str_replace('/', '',$page);
if (!in_array($page,$nobanner)) {
echo '<script src="bannerscript.js"></script>';
}
?>

脚本检查URI,验证页面不是不应该显示横幅的页面,然后像往常一样包含横幅请求。

在任何不应该显示横幅的页面上-在上面的例子中,即page1page2 -横幅请求从未包含在<head>...</head>页面中。