Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在除两个页面外的所有站点中加载javascript_Javascript_Php_Wordpress_Genesis - Fatal编程技术网

在除两个页面外的所有站点中加载javascript

在除两个页面外的所有站点中加载javascript,javascript,php,wordpress,genesis,Javascript,Php,Wordpress,Genesis,我在标题部分有一个外部javascript,如下所示: <head> <script type="text/javascript" src="myscript.js"></script> </head> 此javascript在站点的每个页面中为cookie法则创建一个横幅。横幅仅在您第一次进入网站时显示 我想在除了两个页面之外的所有站点中加载此javascript。我使用Wordpress和Genesis框架 我该怎么做呢?尝试在页面模板的

我在标题部分有一个外部javascript,如下所示:

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

此javascript在站点的每个页面中为cookie法则创建一个横幅。横幅仅在您第一次进入网站时显示

我想在除了两个页面之外的所有站点中加载此javascript。我使用Wordpress和Genesis框架


我该怎么做呢?

尝试在页面模板的
中添加以下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,验证页面是否不应该显示横幅,然后正常地包含横幅请求


在任何不应该显示横幅的页面上(在上面的示例中,即
page1
page2
),横幅请求永远不会包含在页面中

要以典型的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
数组中,该数组包含不应加载bannerscript的页面的所有相关ID


如果您想了解有关Javascript排队的更多信息,请查看

嗨,罗宾,谢谢你的提示!这段代码运行得很好,但横幅在用户每次查看页面时都会显示,而不仅仅是在用户第一次进入网站时。有没有办法避免这种情况?对于其余部分,我输入了页面ID,在这些页面中javascript没有加载,太完美了!啊,对不起,我没有注意到“只有一次”这件事。您可以检查请求变量$\u Cookie以获得给定的Cookie值。我不太懂php,你可以用这个修改来更新代码吗?谢谢你的提示!