【问题标题】:Load a javascript in all site except two page [closed]在除两个页面之外的所有站点中加载 javascript [关闭]
【发布时间】:2015-05-19 19:31:09
【问题描述】:

我在标题部分有一个外部 javascript,就像这样:

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

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

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

我该怎么做?

【问题讨论】:

    标签: javascript php wordpress genesis


    【解决方案1】:

    要以典型的 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

    【讨论】:

    • 嗨,罗宾,谢谢你的提示!此代码运行良好,但每次用户查看页面时都会显示横幅,而不仅仅是他第一次进入该站点时。有没有办法避免这种情况?其余的,我输入了页面 id,在这些页面中,javascript 没有加载,完美!
    • 啊,对不起,我没有注意到“只有一次”的事情。您可以检查给定 cookie 值的请求变量 $_Cookie。 php.net/manual/en/reserved.variables.request.php
    • 我对php不太了解,请问您可以用这个更改更新代码吗?
    【解决方案2】:

    尝试在页面模板的&lt;head&gt;...&lt;/head&gt; 中添加以下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 - 横幅请求永远不会包含在页面 &lt;head&gt;...&lt;/head&gt; 中。

    【讨论】:

    • 感谢鲁宁的提示!
    猜你喜欢
    • 2013-12-15
    • 2018-07-01
    • 2013-02-06
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2012-11-25
    相关资源
    最近更新 更多