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 サイトの他の関連記事を参照してください。