web-dev-qa-db-ja.com

通知:wp_enqueue_scriptが誤って呼び出されました。

これは私のプラグインが有効になっているときに受け取るエラーです。

Notice:wp_enqueue_scriptが誤って呼び出されました。スクリプトとスタイルは、wp_enqueue_scripts、admin_enqueue_scripts、またはlogin_enqueue_scriptsがフックされるまで登録またはキューに入れないでください。詳しくはWordPressでのデバッグをご覧ください。 (このメッセージは、バージョン3.3で追加されました。)/ directory /の3547行目に

これは3547行目です。

trigger_error( sprintf( __( '%1$s was called <strong>incorrectly</strong>. %2$s %3$s' ), $function, $message, $version ) );

これがWP_DEBUG出力の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_enqueueスクリプトの唯一のインスタンスです。

wp_enqueue_script('csv3', plugins_url( '/js/demo.js' , __FILE__ ) , array( 'jquery' ));

私が見つけた例 から私は必要なタスクを実行しました。

Demo.jsファイルに変数を渡す3つの関数は次のとおりです。

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
Kreation

あなたは自分のwp_enqueue_script()呼び出しをフックする方法を示しません。

しかし、表示されるエラーメッセージはかなり明確です。次のいずれかのフックを使用してください。

  • wp_enqueue_scripts
  • admin_enqueue_scripts
  • login_enqueue_scripts

ユースケースに応じて - 追加情報についてはwp_enqueue_script() codexページの ノートを参照してください

たとえば、フロントエンドに正しくエンキューするために行います。

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