在制作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操作网页了,有需要学习的请看以下教程学习。
我就直接发个get请求看看返回值吧。
请求url链接:http://127.0.0.1/wp-admin/admin-ajax.php?action=test
返回如下结果:
使用这个方法就不用单独写接口文件了,也不用管什么路径引用之类的麻烦事,全部交给WordPress帮你处理吧!
评论 (3)