在除两个页面外的所有站点中加载javascript
我在标题部分有一个外部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框架 我该怎么做呢?尝试在页面模板的
<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,你可以用这个修改来更新代码吗?谢谢你的提示!