WordPress での Ajax 呼び出しのトラブルシューティング: 出力が「0」になる理由
WordPress では、Ajax 呼び出しを行うのは簡単ですが、場合によっては問題が発生することがあります。生じる可能性があります。よくある問題の 1 つは、別の値を渡しているにもかかわらず、Ajax 呼び出しが出力として「0」を返す場合です。
この問題は、WordPress のフロントエンドに ajaxurl 変数がないことが原因で発生します。 WordPress はこの変数をバックエンドで定義しますが、Ajax 呼び出しが実行されるフロントエンドでは定義しません。
解決策: JavaScript ファイルをローカライズします
この問題を解決するには、フロントエンド コードで ajaxurl 変数を定義する必要があります。これは、データをローカライズされたスクリプトに関連付ける wp_localize_script 関数を使用して行うことができます。
その方法は次のとおりです:
JavaScript ファイルをキューに入れます:
<code class="php">function my_enqueue() { wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') ); } add_action( 'wp_enqueue_scripts', 'my_enqueue' );</code>
スクリプトをローカライズします:
<code class="php">wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );</code>
このコードは、というグローバル オブジェクトを作成します。 Ajax スクリプト内の my_ajax_object には、ajaxurl 変数が含まれています。
Ajax 呼び出しで ajaxurl 変数を使用します:
<code class="javascript">jQuery.ajax({ type: "post", dataType: "json", url: my_ajax_object.ajax_url, data: formData, success: function(msg){ console.log(msg); } });</code>
my_ajax_object.ajax_url を使用することで、正しい WordPress エンドポイントに対して Ajax 呼び出しを行い、期待どおりの出力を受け取ることができるようになりました。
以上がWordPress Ajax 呼び出しで「0」が返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。