无法注册功能WordPress

时间:2014-09-27 14:46:27

标签: javascript php jquery wordpress themes

无论我怎么努力,我都无法用WordPress成功注册我的功能。

我目前做了以下事情:

在主题functions.php

中添加了代码
function test_my_script() {
wp_register_script( 'custom-script', get_template_directory_uri() . '/js/gls-enable.js', array( 'jquery' ) );
wp_enqueue_script( 'custom-script' );
}

add_action( 'wp_enqueue_scripts', 'test_my_script' );

在主题文件夹/js/gls-enable.js

中添加了我的脚本
jQuery(document).ready(function($) {
   $("shipping_method_0_flat_rate").change(function () {
    if ($("#shipping_method_0_flat_rate").is(":checked")) {
        window.alert("sometext");
    });
});

在我希望它工作的页面上调用我的脚本

<?php test_my_script(); ?>

当我在提到的页面上查看源代码时,无法在任何地方找到该脚本。

2 个答案:

答案 0 :(得分:0)

您想要摆脱register_script

function test_my_script() {
    wp_enqueue_script( 'custom-script', get_template_directory_uri() . '/js/gls-enable.js', array( 'jquery' ) );
}

add_action( 'wp_enqueue_scripts', 'test_my_script' );

此外,通过执行此操作,您的脚本将在调用'wp_enqueue_scripts'操作挂钩时自动排队。您不需要通过php在模板中明确地调用它。

您的jQuery语法中也存在错误。它应该是:

jQuery(document).ready(function(){ 
    $("#shipping_method_0_flat_rate").change(function(){ 
        if ( $("#shipping_method_0_flat_rate").is(":checked") ) { 
            window.alert("sometext"); 
        }
    }); 
});

答案 1 :(得分:0)

首先,您无需在页面中调用test_my_script()。它是wp_enqueue_scripts的一个钩子,它由wordpress自动加载,这意味着错误应该在javascript上。

在此处:$("shipping_method_0_flat_rate").,添加#.(如果是id或类名);

也许问题是在php中注册该操作,所以最好将WP_DEBUG设置为true(wordpress的root并编辑wp-config.php

如果在将WP_DEBUG设置为true后遇到一些错误,并将错误发布到控制台内(您应该有:D)

加载al javascript files in footer是一个很好的做法(此文件在标题中加载)。也许jquery在页脚中,gls-enable.js在jquery之前加载。

要在页脚中加载:

wp_register_script( 'custom-script', get_template_directory_uri() . '/js/gls-enable.js', array( 'jquery' ), '1.0', true );