我強烈建議參照https://codex.wordpress.org/AJAX_in_Plugins#Ajax_on_the_Viewer-Facing_Side
你需要在你的插件目錄中的PHP腳本,返回你要求什麼,你需要確定URL在運行時爲您的阿賈克斯參考。上面的鏈接給出了排隊和使用wp_localize_script()
爲自定義php腳本提供url的示例。
wp_enqueue_script('ajax-script',
plugins_url('/js/my_query.js', __FILE__), array('jquery'));
// in JavaScript, object properties are accessed as
// ajax_object.ajax_url, ajax_object.we_value
wp_localize_script('ajax-script', 'ajax_object',
array('ajax_url' => plugins_url('/php/myapi.php'));
你的JavaScript文件將被包含在每一頁上,並會監聽需要HTML塊頁面上的事件,就像你描述它。
你的文件myapi.php
然後需要接受一個請求,可能使用查詢字符串,從wordpress api獲取適當的內容,並用你的javascript將放置的所述內容作出響應。
要訪問WordPress的API,以及雖然,你有兩個選擇:
- 隊WordPress的運行開始你的文件,由including
wp-load.php
。這可能不是最乾淨的方式。
- 設置一個custom page or slug指向您的插件。
我會建議第二個選項,並建議一塞,在這種情況下,你會發現這篇文章有幫助:wp_rewrite in a WordPress Plugin
從傑森的評論,基於上面的鏈接:
重寫規則被提及了很多,但真的是一個分心 - 他們只是幫助使URL看起來更「友好」,這不是一個 目標在這裏。關鍵是:註冊一個自定義的GET參數;在頁面渲染過程的早期尋找 那個參數;如果您發現 參數已設置,則輸出/回聲填充和die()
。有一個 可用於查看參數的鉤子數量,選擇 取決於您希望WP設置並首先處理多少。
我發現了一個很好的解釋,導致我在這裏找到了一個解決方案:https://willnorris.com/2009/06/wordpress-plugin-pet-peeve-2-direct-calls-to-plugin-files我將把它作爲答案進行擴展,但仍然會很高興聽到低級別的URL解析是如何工作的。 – Jason