如何在我的WP网站的某些页面上禁用加载Lightbox弹出窗口

时间:2017-01-12 16:35:53

标签: javascript php

我有一个Wordpress网站,最近我添加了一个灯箱,在加载网站几秒钟后弹出并收集电子邮件。我的电子邮件营销提供商是GetResponse。基本上,他们给了我一个脚本,我放在我的网站的页脚,所以它加载了lighbox。显然,当它设置为这样时,灯箱会加载到我网站的每一页上。所以我的问题是如何禁止在我的网站的某些页面上加载灯箱?我很感激任何意见。这是我添加到页脚的灯箱代码:

<script type="text/javascript" src="https://app.getresponse.com/view_webform_v2.js?u=SXIds&webforms_id=9414305"></script>

3 个答案:

答案 0 :(得分:0)

您可以使用WP功能is_page();仅在某些页面上输出脚本。这可以基于页面标题,ID等。查看更多here

<?php
    if(is_page( 'Home' )) {
        echo '<script type="text/javascript" src="https://app.getresponse.com/view_webform_v2.js?u=SXIds&webforms_id=9414305"></script>';
    }
?>

答案 1 :(得分:0)

最简单的解决方案,将其添加到您要加载脚本的页面。这可以防止它加载到其他页面上:

// You can replace 'Home' with a Page ID, title, slug, or array of such, if you want to
if (is_page( 'Home' ) ):
    <script type="text/javascript" src="https://app.getresponse.com/view_webform_v2.js?u=SXIds&webforms_id=9414305"></script>
endif;

但是,我认为正确的方法是尽可能地将PHP逻辑保留在HTML模板之外。因此,您可能希望将此添加到您的functions.php:

,而不是上面提到的解决方案
function load_scripts() {
    // You can change 'Home' with the Page ID, title, slug, or array of such, if you want to
    if ( is_page( 'Home' ) ) {
        wp_enqueue_script( 'GetResponse', 'https://app.getresponse.com/view_webform_v2.js?u=SXIds&webforms_id=9414305', false );
        // here you can enqueue more js / css files 
    }
}

add_action( 'wp_enqueue_scripts', 'load_scripts' ); 

wp_enqueue_scripts是默认情况下由Wordpress加载的操作。您可以创建自己的操作,但在这种情况下,您必须自己加载它,例如:

// Create my own action 'load_my_scripts', which executes the 'load_scripts' function
add_action( 'load_my_scripts', 'load_scripts' );
// Load (or execute) the action 
do_action( 'load_my_scripts' ); 

答案 2 :(得分:0)

非常感谢帮助人员。我在functions.php中试过这个解决方案,但无法让它工作:

    function load_scripts() {
    // You can change 'Home' with the Page ID, title, slug, or array of such, if you want to
    if ( is_page( 'Home' ) ) {
        wp_enqueue_script( 'GetResponse', 'https://app.getresponse.com/view_webform_v2.js?u=SXIds&webforms_id=9414305', false );
        // here you can enqueue more js / css files 
    }
}

add_action( 'wp_enqueue_scripts', 'load_scripts' );

然而另一种解决方案有效。我在footer.php中的lightbox脚本上面添加了以下代码:

    <?php
    if(is_page( array( 4530, 3983, 4542 ))) {
        echo '<script type="text/javascript" src="https://app.getresponse.com/view_webform_v2.jsu=SXIds&webforms_id=9414305"</script>';
    }
?>