ホームページ  >  記事  >  バックエンド開発  >  WordPress AJAX 呼び出しが 0 を返すのはなぜですか?

WordPress AJAX 呼び出しが 0 を返すのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 14:05:02398ブラウズ

Why is my WordPress AJAX call returning 0?

WordPress での Ajax 呼び出し: 出力の問題のトラブルシューティング

ajax 呼び出しが出力として常に 0 を返し、原因について困惑しています。この問題を修正するには、次の点を考慮してください:

WordPress のグローバル ajaxurl 変数:

WordPress は、AJAX 呼び出しを容易にするバックエンドでグローバル ajaxurl 変数を定義します。ただし、この変数はフロントエンドでは使用できません。

フロントエンドで ajaxurl を定義します:

フロントエンドで AJAX 呼び出しを利用するには、ajaxurl 変数を手動で定義する必要があります。効果的な方法の 1 つは、wp_localize_script を使用することです。

wp_localize_script の使用:

AJAX 呼び出しが my-ajax-script.js にあると仮定して、wp_localize_script を次のように使用します。

function my_enqueue() {
    wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') );
    wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue' );

これにより、ajax_url を含む my_ajax_object オブジェクトが JS ファイルに作成されます。

Javascript で my_ajax_object を利用します:

スクリプトをローカライズした後、 JS ファイル内の my_ajax_object オブジェクト:

<code class="js">jQuery.ajax({
    type: "post",
    dataType: "json",
    url: my_ajax_object.ajax_url,
    data: formData,
    success: function(msg){
        console.log(msg);
    }
});</code>

以上がWordPress AJAX 呼び出しが 0 を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。