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
相關文章
- [JS] Ajax請求會話過期處理JS會話
- 封裝springmvc處理ajax請求結果封裝SpringMVC
- ajax呼叫WebMethed返回處理請求時出錯Web
- spring security:ajax請求的session超時處理SpringSession
- ajax請求
- Express專案中ajax請求session過期問題處理ExpressSession
- Vue元件化時使用axios處理ajax請求的使用Vue元件化iOS
- 請求資料處理
- Mongodb請求處理流程MongoDB
- .NET處理HTTP請求HTTP
- 處理REST SOE請求REST
- ajax請求 juery
- SpringMVC請求處理流程SpringMVC
- 請求處理管道個人理解
- nginx處理http請求流程NginxHTTP
- 網頁請求(Ajax)網頁
- AJAX 非同步請求非同步
- yai 請求預處理指令碼AI指令碼
- Go Web如何處理Web請求?GoWeb
- DeferredResult——非同步請求處理非同步
- nginx 如何處理一個請求Nginx
- Laravel請求處理管道理解Laravel
- 自定義處理頁面請求
- 原生ajax請求&JSONPJSON
- AJAX 跨源 HTTP 請求HTTP
- jquery ajax 跨域請求jQuery跨域
- 防止ajax請求重發
- 使用cors完成跨域請求處理CORS跨域
- Netty(二):如何處理io請求?Netty
- 搜尋 伺服器處理請求伺服器
- springmvc原始碼 ---DispatcherServlet 處理請求SpringMVC原始碼Servlet
- Nacos - 服務端處理心跳請求服務端
- options 請求跨域問題處理跨域
- 處理請求(AFURLRequestSerialization)和響應(AFURLResponseSerialization)
- iOS資料請求超時處理iOS
- .NET處理HTTP請求——摘自網路HTTP
- ASP.Net請求處理機制初步探索之旅(5):ASP.Net MVC請求處理流程ASP.NETMVC
- 封裝ajax、axios請求封裝iOS