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

时间:2019-01-28 11:52:54

标签: javascript php wordpress

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

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

**页面模板**

<?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>

1 个答案:

答案 0 :(得分:0)

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

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

您可以使用<TextView android:id="@+id/location_text_view" android:text="@={hourlyViewModel.location}" android:layout_width="match_parent" android:layout_height="45dp" android:textColor="@color/colorWhite" android:elevation="2dp" android:textSize="18sp" android:gravity="center"/> is_page()来确定它是您要查找的页面还是页面模板。

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

is_page_template()

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

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");
        });' );
});