繁体   English   中英

wp_add_inline_script没有向我的页面添加任何内容,无法弄清原因

[英]wp_add_inline_script isn't adding anything to my page, can't figure out why

我想将内联脚本仅添加到单个页面,因此尝试添加页面模板文件。 但是,在页脚调用上方或下方的两个代码放置都不会在源中输出任何内容。

我不知道这应该如何工作,有人可以帮忙吗?

**页面模板**

<?php
get_footer('blank');
function cardpay_demo_script() {
    wp_add_inline_script(
        'jquery',
        '$(".btn-next").click(function() {
            $(".nav-pills .active").parent().next("li").find("a").removeClass("disabled").trigger("click");
        });'
    );
}
add_action('wp_enqueue_scripts', 'cardpay_demo_script');

**页脚文件**

<?php wp_footer(); ?>
</body>
</html>

您将函数放置在错误的文件上。 该功能应位于主题的functions.php文件中,而不应位于任何默认模板文件或自定义模板文件中

原因是在WordPress中; 一个Action是一个PHP函数,它在整个WordPress Core的特定位置执行,由于自定义模板将在触发挂钩之后被调用,因此该函数将永远不会真正运行,因此不会输出任何内容。

您可以使用is_page()is_page_template()来确定它是您要查找的页面还是页面模板。

以下是有关动作挂钩的其他信息: https : //codex.wordpress.org/Glossary#Action

add_action( 'wp_enqueue_scripts', function () {
   if( !is_page_template('My Template') ) return;
   if ( ! wp_script_is( 'jquery', 'done' ) ) {
     wp_enqueue_script( 'jquery' );
   }
   wp_add_inline_script( 'jquery', '$(".btn-next").click(function() { $(".nav-pills .active").parent().next("li").find("a").removeClass("disabled").trigger("click");
        });' );
});

或者您也可以使用wp_footer钩子在脚注上打印脚本。 只需将其放在主题的functions.php文件中

add_action('wp_footer', function (){ 
   if( !is_page_template('My Template') ) return;
?>
    <script type="text/javascript">
        jQuery(".btn-next").click(function() { jQuery(".nav-pills .active").parent().next("li").find("a").removeClass("disabled").trigger("click");
            });
    </script>

<?php   
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM