国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Wordpress > 正文

WordPress中利用admin-ajax.php實現Ajax功能

2024-09-07 00:50:57
字體:
來源:轉載
供稿:網友

用這個文件進行 Ajax 的好處主要有幾點:

安全:WordPress 本身進行了很復雜的安全性優化,如果我們都自己寫是很浪費時間和資源的.

兼容:由于文件是公用的,提供了通用的鉤子,其它插件都可以參與進去.

高效:這個不解釋了,既符合原則(執行到了 init 鉤子),又兼顧了效率問題.

方便:一個鉤子即可輸出代碼,都不用判斷條件.

基本就這幾點了,網上查了一下,發現關于此文件的資料并不多,于是看了下源碼,發現使用其實很簡單.

首先請求這個文件:echo admin_url( 'admin-ajax.php' );

向admin-ajax.php發送請求的時候,有一個必須的參數是action,因為admin-ajax.php需要根據用戶是否登陸了來觸發不同的hooks,代碼如下:

  1. // 如果沒登陸, 會觸發這個hook 
  2. do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] ); 
  3.  
  4. // 如果登陸了, 會觸發這個hook 
  5. do_action( 'wp_ajax_' . $_POST['action'] ); 
  6. 發出Ajax請求的代碼大概如下: 
  7.  
  8. jQuery.post( 
  9.        MyAjax.ajaxurl, 
  10.        { 
  11.             action : 'myajax-submit'
  12.            postID : MyAjax.postID 
  13.        }, 
  14.        function( response ) { 
  15.             alert( response ); 
  16.        } 
  17. ); 

現在,我們只需要在我們的主題文件中處理一下Ajax請求,并不需要在單獨的文件中來處理,代碼如下:

  1. add_action( 'wp_ajax_nopriv_myajax-submit''myajax_submit' ); 
  2. add_action( 'wp_ajax_myajax-submit''myajax_submit' ); 
  3.  
  4. function myajax_submit() { 
  5.  $postID = $_POST['postID']; 
  6.  $response = json_encode( array'success' => true ) ); 
  7.  
  8.  header( "Content-Type: application/json" ); 
  9.  echo $response
  10.  
  11.  // 這個很關鍵啊有木有: 別忘記 "exit" 
  12.  exit

在登錄和未登錄的情況下會分別調用 wp_ajax_nopriv_action參數內容 和 wp_ajax_action參數內容,所以在這里輸出即可,具體可以研究下 admin-ajax.php 文件.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙州县| 永宁县| 莱西市| 曲沃县| 陆河县| 淮滨县| 梅河口市| 馆陶县| 江永县| 额尔古纳市| 女性| 临安市| 通城县| 思南县| 永宁县| 遵义市| 繁峙县| 文化| 青河县| 绍兴县| 张家口市| 翼城县| 永安市| 东源县| 锡林浩特市| 汉源县| 平原县| 札达县| 苗栗市| 嘉鱼县| 安丘市| 漠河县| 方城县| 泸西县| 五家渠市| 沅陵县| 望城县| 宁城县| 舒城县| 大竹县| 枣庄市|