如原始問題中所述,在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>
此程式碼將在前端建立一個全域 my_ajax_object 對象,其中包含 ajax_url 屬性。然後,您可以在 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中文網其他相關文章!