Wordpress實現ajax請求,分為兩種情況:登錄用戶發起的ajax請求和未登錄用戶發起的ajax請求.
通過ajax傳遞的數據中,action是一個固定字段,而且action字段所對應的值必須和hook名稱中的后綴(下述hook里的 your_action_name 部分)相匹配.Wordpress也是借此來區分不同的ajax請求.
1.登錄用戶發起ajax請求
涉及一個hook : wp_ajax_(your_action_name)
![]() |
處理ajax的后端php代碼
|
![]() |
js代碼
|
值得注意的是,自從Wordpress 2.8開始,后台界面已經自動賦值了一個js全局變量ajaxurl,因此,在上述情況下,js代碼中可以直接引用此全局變量作為ajax的請求路徑.
2.未登錄用戶發起ajax請求
涉及另一個hook : wp_ajax_nopriv_(your_action_name)
需要注意: 和情況1不同的地方,前端界面沒有可供直接引用的ajaxurl,所以必須通過一個wordpress函數 wp_localize_script() 來實現把路徑變量通過php傳遞給前端js,例如:
![]() |
這樣,我們在js代碼里讀取對象test_ajax的ajaxu
|
這里的對象變量test_ajax只能由對應js文件中的代碼訪問,也就是上例中的script.js.
![]() |
處理ajax的后端php代碼
|
![]() |
js代碼
|