网站地图    收藏   

主页 > 后端 > wordpress教程 >

WordPress中利用admin-ajax.php实现Ajax功能 - WordPress

来源:自学PHP网    时间:2014-11-28 23:41 作者: 阅读:

[导读] 用这个文件进行 Ajax 的好处主要有几点:安全:WordPress 本身进行了很复杂的安全性优化,如果我们都自己写是很浪费时间和资源的 兼容:由于文件是公用的,提供了通用的钩子,其它插件都可以...

WordPress中利用admin-ajax.php实现Ajax功能

用这个文件进行 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 文件.

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论