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

用这个文件进行 Ajax 的好处主要有几点:

安全,WordPress 本身进行了很复杂的安全性优化,如果我们都自己写是很浪费时间和资源的。

兼容,由于文件是公用的,提供了通用的钩子,其它插件都可以参与进去。

高效,这个不解释了,既符合原则(执行到了 init 钩子),又兼顾了效率问题。

方便,一个钩子即可输出代码,都不用判断条件。

基本就这几点了,网上查了一下,发现关于此文件的资料并不多,于是看了下源码,发现使用其实很简单。

首先请求这个文件:

代码如下

echo admin_url( 'admin-ajax.php' );

向admin-ajax.php发送请求的时候, 有一个必须的参数是action, 因为admin-ajax.php需要根据用户是否登陆了来触发不同的hooks

代码如下

// 如果没登陆, 会触发这个hook

do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] );

// 如果登陆了, 会触发这个hook

do_action( 'wp_ajax_' . $_POST['action'] );

发出Ajax请求的代码大概如下:

jQuery.post(

MyAjax.ajaxurl,

{

action : 'myajax-submit',

postID : MyAjax.postID

},

function( response ) {

alert( response );

}

);

现在, 我们只需要在我们的主题文件中处理一下Ajax请求, 并不需要在单独的文件中来处理

代码如下

add_action( 'wp_ajax_nopriv_myajax-submit', 'myajax_submit' );

add_action( 'wp_ajax_myajax-submit', 'myajax_submit' );

function myajax_submit() {

$postID = $_POST['postID'];

$response = json_encode( array( 'success' => true ) );

header( "Content-Type: application/json" );

echo $response;

// 这个很关键啊有木有: 别忘记 "exit"

exit;

}

对,在登录和未登录的情况下会分别调用 wp_ajax_nopriv_action参数内容 和 wp_ajax_action参数内容,所以在这里输出即可,具体可以研究下 admin-ajax.php 文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值