• 注册
  • 个人说明:TA有点懒了,什么都没有写。
    关注 1 粉丝 0 喜欢 0 内容 256
    河南省·郑州市
    聊天 送礼

    分享精彩给好友

    • 查看作者
    • WordPress钩子为admin-ajax.php注册接口替代接口文件【转】

      在制作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帮你处理吧!

    • 1
    • 0
    • 0
    • 154