让代码更简单

WordPress钩子为admin-ajax.php注册接口替代接口文件

重要:本文最后更新于2019-05-21 08:35:25,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

在制作WordPress主题或者插件的时候,我们经常会使用到一种局部网页刷新功能ajax,了解前端的人都知道,通过ajax发送请求取得数据,然后修改局部网页内容,实现无刷新网页刷新数据,可以非常有效的提高用户体验。要实现这个功能并不是那么简单,你需要书写前端js发送ajax请求,还需要书写后台请求接口,返回数据给前端,实施起来非常麻烦。WordPress作为使用率最高的网站程序,肯定是不能容忍这种情况发生的,所以WordPress提供了相应的方法,可以让你免去书写接口文件的过程,直接将接口写在WordPress函数集合中,如functions.php文件。

没错,整个ajax请求核心就在admin-ajax.php中,只需要写前端js即可,我们来看看如何实现整个过程。

首先你需要给admin-ajax注册后端接口,这个接口可以使用WordPress提供的钩子还实现,

复制
//wp_ajax_nopriv效验用户为未登录是启用的方法
add_action( 'wp_ajax_nopriv_test', 'test' );
//wp_ajax_nopriv效验用户为已登录是启用的方法
add_action( 'wp_ajax_test', 'test' );

wp_ajax_nopriv后面跟请求的方法名,我这里写的test,后面的test就是这个请求要执行的方法了,在这个方法中写输出给前端的内容。

复制
function test(){
print_r(json_encode(array('status'=>1,'msg'='success')));
}

然后前端使用时,只需要给admin-ajax.php发送一个action为test的键值对数据(wp_ajax_nopriv后面跟的名字),就会自动调用test函数并返回数据。当然你可以在test函数中判断请求方法是post还是get,并做出相应动作,我这里为了测试简单,就不写ajax操作网页了,有需要学习的请看以下教程学习。

AJAX基础教程一

AJAX基础教程二

jquery+ajax实现注册时判断用户资料是否存在

jQuery与Ajax实现弹窗异步登陆效果

我就直接发个get请求看看返回值吧。

请求url链接:http://127.0.0.1/wp-admin/admin-ajax.php?action=test

返回如下结果:

WordPress钩子为admin-ajax.php注册接口实现前端交互

WordPress钩子为admin-ajax.php注册接口替代接口文件

使用这个方法就不用单独写接口文件了,也不用管什么路径引用之类的麻烦事,全部交给WordPress帮你处理吧!

感觉很棒!可以赞赏支持我哟~

2 打赏

评论 (3)

登录后评论
研究的真透彻
大佬。
谢谢博主的分享
QQ咨询 邮件咨询 狗哥推荐