我在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,验证页面不是不应该显示横幅的页面,然后像往常一样包含横幅请求。
在任何不应该显示横幅的页面上-在上面的例子中,即page1
和page2
-横幅请求从未包含在<head>...</head>
页面中。