注意:WP_ENQUEUE_SCRIPT调用不正确

时间:2015-03-25 作者:Kreation

这是我激活插件时收到的错误:

注意:wp\\u enqueue\\u脚本调用不正确。在wp\\u enqueue\\u脚本、admin\\u enqueue\\u脚本或login\\u enqueue\\u脚本挂钩之前,不应注册或排队脚本和样式。有关详细信息,请参阅WordPress中的调试。(此消息是在版本3.3中添加的。)在/目录/第3547行

这是第3547行:

trigger_error( sprintf( __( \'%1$s was called <strong>incorrectly</strong>. %2$s %3$s\' ), $function, $message, $version ) );
以下是WP\\U调试输出的if语句的其余部分:

if ( WP_DEBUG && apply_filters( \'doing_it_wrong_trigger_error\', true ) ) {
    if ( function_exists( \'__\' ) ) {
        $version = is_null( $version ) ? \'\' : sprintf( __( \'(This message was added in version %s.)\' ), $version );
        $message .= \' \' . __( \'Please see <a href="http://codex.wordpress.org/Debugging_in_WordPress">Debugging in WordPress</a> for more information.\' );
        trigger_error( sprintf( __( \'%1$s was called <strong>incorrectly</strong>. %2$s %3$s\' ), $function, $message, $version ) );
    } else {
        $version = is_null( $version ) ? \'\' : sprintf( \'(This message was added in version %s.)\', $version );
        $message .= \' Please see <a href="http://codex.wordpress.org/Debugging_in_WordPress">Debugging in WordPress</a> for more information.\';
        trigger_error( sprintf( \'%1$s was called <strong>incorrectly</strong>. %2$s %3$s\', $function, $message, $version ) );
    }
}
这是我插件中唯一的wp\\u enqueue脚本实例:

wp_enqueue_script(\'csv3\', plugins_url( \'/js/demo.js\' , __FILE__ ) , array( \'jquery\' ));
这几乎是一字不差的an example I found 完成了我需要的任务

下面是将变量传递给演示的三个函数。js文件:

function check_db(){
    global $table;
    global $quanid;
    $hf_userid = get_current_user_id();
    global $wpdb;
    $wpdb->get_results( $wpdb->prepare("SELECT count( 1 ) FROM $table WHERE ItemID = \'$quanid\' AND user = \'$hf_userid\'", ARRAY_A));
    }
    add_action(\'wp_ajax_check_db\', \'check_db\');
    function update_entry(){
    global $quanid;
    $price = isset($_POST[$quanid]);
    $hf_userid = get_current_user_id();
    global $table;
    global $wpdb;
        $wpdb->update( $wpdb->prepare( \'$table\',
        array(
            \'ItemID\' => \'$quanid\',
            \'Price\' => $price,
            \'user\' => $hf_userid)));
    }
    add_action(\'wp_ajax_update_entry\', \'update_entry\');
    function post_entry(){
    global $quanid;
    $price = isset($_POST[$quanid]);
    $hf_userid = get_current_user_id();
    global $wpdb;
    $wpdb->insert( $wpdb->prepare( 
        \'$table\', 
        array( 
            \'ItemID\' => \'$quanid\',
            \'Price\'  => $price,
            \'user\'   => $hf_userid
        ), 
        array( 
            \'%d\', \'%d\', \'%d\'
        ) 
    ));
    die();
    return true;
    }
    add_action(\'wp_ajax_post_entry\', \'post_entry\');

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

你没有展示你是如何wp_enqueue_script() 呼叫

但您得到的错误消息非常清楚,请使用以下挂钩之一:

  • wp_enqueue_scripts
  • admin_enqueue_scripts
  • login_enqueue_scripts
取决于用例-请参阅notes at the wp_enqueue_script() codex page for additional information.

例如,要在前端正确排队,请执行以下操作:

function csv_three_script() {
    wp_enqueue_script(
        \'csv3\', 
        plugins_url( 
            \'/js/demo.js\', 
            __FILE__ 
        ), 
        array( 
            \'jquery\'
        )
     );
}
add_action( \'wp_enqueue_scripts\', \'csv_three_script\' );

结束

相关推荐

重定向期间忽略自定义ADMIN_NOTICES消息

我在中设置了错误处理机制one of my plugins 向管理区域添加通知和错误,就像核心一样。它在大多数情况下都能正常工作,但在某些情况下(如保存自定义帖子类型)却不能正常工作。我猜重定向是在幕后发生的,消息是在重定向发生之前打印的,因此它们似乎永远不会出现。所以,我猜这就是发生的事情用户编辑自定义帖子类型并点击Publish(发布)调用My post\\u updated(我的帖子更新)回调,该回调验证并保存自定义字段。回调添加错误消息。Wordpress重定向到某个页面以进行某些处理。调用My