在除两个页面之外的所有站点中加载 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。

我该怎么做?

尝试在页面模板的 <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>.

要以典型的 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 排队的更多信息,请查看 Wordpress Hook wp_enqueue_script