元の問題で述べたように、プラグインを使用せずに Wordpress で Ajax 呼び出しを行うプラグインでは、出力として常に「0」が表示されるなど、予期しない結果が生じる場合があります。これは、フロントエンドに ajaxurl と呼ばれるグローバル変数が存在しないことが原因です。 Wordpress は実行時にこの変数を作成しますが、バックエンドでのみ使用可能になります。
この問題を解決するには、wp_localize_script 関数を使用してフロントエンドで独自の ajaxurl 変数を作成する必要があります。これを行う方法の例を次に示します。
<code class="php">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' );</code>
このコードは、ajax_url プロパティを含むグローバル my_ajax_object オブジェクトをフロントエンドに作成します。次に、JavaScript コードでこのオブジェクトを使用して、次のように Ajax リクエストを行うことができます。
<code class="javascript">jQuery.ajax({ type: "post", dataType: "json", url: my_ajax_object.ajax_url, data: formData, success: function(msg){ console.log(msg); } });</code>
このアプローチを利用すると、プラグインに依存せずに Wordpress で Ajax 呼び出しを正常に行うことができます。プロジェクトの設定に一致するように、ajax スクリプトのファイル名と CDN リンクを忘れずに変更してください。
以上がプラグインを使用せずにWordPressでAjax呼び出しを行う方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。