wordpress 處理 ajax 請求
背景:
我寫了一個widget,這個widget裡有一個form,我要把form裡的東西通過ajax打到wordpress處理並返回內容。
步驟:
1、寫一個widget
寫widget需要繼承WP_Widget類,然後重寫widget()、update()等方法。
具體可以參考其他的文件來編寫一個widget。
在這個widget()裡,我加了一段js:
其中需要著重說明的是ajax的url欄位和data欄位的action欄位,其中url為http://your_domain.com/wp-admin/admin-ajax.php,因為要想處理ajax請求,必須打到這個地址。
data欄位是要傳送的資料嘛,裡面必須包含action欄位,並且,這個action的值必須是一個名字handler,先放一邊。
var ajaxurl = '<?php echo admin_url('admin-ajax.php')?>';
$('#submit').click(function(e){
$.ajax({
type:'post',
url:ajaxurl,
data:{'action':'handler','a':$('#a').val(),'b':$('#b').val(),'c':$('#c').val()},
cache:false,
dataType:'json',
success:function(result){
$('.recordimg img').attr("src",result);
},
error:function(data){
alert("err");
}
});
return false;
});
2、編寫處理ajax請求的函式
在theme/functions.php裡新增如下程式碼:
首先第一點,這兩片段程式碼中的加粗字型必須一致。
其次鉤子函式必須是wp_ajax_* (這個是admin使用者的許可權)和 wp_ajax_nopriv_*(這個是普通使用者的許可權)
最後handler()函式裡必須有一個 echo 和 wp_die()或die()結束。並且 echo的必須是string型別
function handler(){
echo json_encode("data:image/jpeg;base64,".base64_encode(file_get_contents($pic_folder.'after.jpg')));//這裡我返回了一個圖片的base64串。
wp_die();
}
add_action( 'wp_ajax_handler', 'handler' );
add_action( 'wp_ajax_nopriv_handler', 'handler' );
對基本就是這樣了。
參考:
http://w4dev.com/wp/wp_ajax
相關文章
- springmvc處理ajax請求SpringMVC
- 封裝springmvc處理ajax請求結果封裝SpringMVC
- ajax呼叫WebMethed返回處理請求時出錯Web
- spring security:ajax請求的session超時處理SpringSession
- Express專案中ajax請求session過期問題處理ExpressSession
- ajax請求
- ajax請求 juery
- 請求資料處理
- DeferredResult——非同步請求處理非同步
- 原生ajax請求&JSONPJSON
- Python爬蟲(5-10)-編解碼、ajax的get請求、ajax的post請求、URLError/HTTPError、微博的cookie登入、Handler處理器Python爬蟲ErrorHTTPCookie
- nginx 如何處理一個請求Nginx
- Go Web如何處理Web請求?GoWeb
- yai 請求預處理指令碼AI指令碼
- Netty(二):如何處理io請求?Netty
- Laravel請求處理管道理解Laravel
- 處理 HTTP 請求的註解HTTP
- springmvc原始碼 ---DispatcherServlet 處理請求SpringMVC原始碼Servlet
- 封裝ajax、axios請求封裝iOS
- wordpress ajax
- 處理請求(AFURLRequestSerialization)和響應(AFURLResponseSerialization)
- 使用cors完成跨域請求處理CORS跨域
- linux如何處理多連線請求?Linux
- SpringBoot 教程之處理非同步請求Spring Boot非同步
- 4、Ktor學習-處理HTTP請求;HTTP
- java webservice 帶請求頭方式處理JavaWeb
- Spring MVC的請求處理邏輯SpringMVC
- SpringBoot可以同時處理多少請求?Spring Boot
- 搜尋 伺服器處理請求伺服器
- options 請求跨域問題處理跨域
- Nacos - 服務端處理心跳請求服務端
- 如何傳送請求以及AJAX
- Ajax請求後臺資料
- ajax請求servlet返回資料Servlet
- KKB : Jquery實現Ajax請求jQuery
- ajax中POST請求與引數(請求體)設定
- ajax中設定請求頭和自定義請求頭
- 關於在request請求時,處理請求引數的問題
- Nginx請求處理流程你瞭解嗎?Nginx