WP_enQueue_SCRIPTS导致错误

时间:2019-12-10 作者:Danish Muneer

我通过连接到wp_enqueue_scripts()添加了一个javascript文件。代码如下:

function order_tracking() {
    global $post;
    if ( $post->ID == 19851 ) {
        wp_enqueue_script(\'ordertracking\', get_template_directory_uri(), array(\'jquery\') ,\'1.0\', true );
    }
}
add_action( \'wp_enqueue_scripts\', \'order_tracking\' );
javascript文件包含一个简单的代码:

/**
 * test javascript function
 */

jQuery(document).ready(function() {
    console.log(\'loaded\');
    jQuery("#ordertrackingsubmit").on("click", function (e) {
        var quotenum = jQuery("#quotenum").val();
        console.log(quotenum);
    }); 
}); 
但我看到了错误。在Google Chrome控制台上,它显示以下内容:

Uncaught SyntaxError: Unexpected token \'<\'     ?ver=1.0:1 
在sources选项卡中,它显示以下内容:

<br />
<b>Fatal error</b>:  Uncaught Error: Call to undefined function genesis() in /home/skirting/public_html/alcocovers.com/wp-content/themes/genesis/index.php:15
Stack trace:
#0 {main}
  thrown in <b>/home/skirting/public_html/alcocovers.com/wp-content/themes/genesis/index.php</b> on line <b>15</b><br />
有人能告诉我我做错了什么吗?当我将代码直接添加到footer.php 代码起作用。

1 个回复
最合适的回答,由SO网友:Danish Muneer 整理而成

我使用的是genesis儿童主题,因此必须编辑我的order_tracking() 有点功能。get_template_directory_uri() 将URL提供给当前child 主题,并将其与javascript文件名相结合,就成功了。

以下是它的工作原理:

function order_tracking() {
    global $post;
    if ( $post->ID == 19851 ) {
        wp_enqueue_script(\'ordertracking\', get_template_directory_uri(). "/ordertracking.js", array(\'jquery\') ,\'1.0\', true );
    }
}
add_action( \'wp_enqueue_scripts\', \'order_tracking\' );