ajax与action,WordPress主题开发之wp_ajax_{$action}和wp_ajax_nopriv_{$action}的区别

用admin-ajax.php来处理Ajax请求

Ajax请求应该被指向wp-admin/admin-ajax.php, 文件名中的”admin”可能会引起困惑, 但是不管是前台的还是后台的Ajax请求都是在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;  }

腾讯云限时秒杀【点击购买】

搬瓦工,CN2高速线路,1GB带宽,电信联通优化KVM,延迟低,速度快,建站稳定,搬瓦工BandwagonHost VPS优惠码BWH26FXH3HIQ,支持<支付宝> 【点击购买】!

Vultr$3.5日本节点,512M内存/500G流量/1G带宽,电信联通优化,延迟低,速度快【点击购买】!

阿里云香港、新加坡VPS/1核/1G/25G SSD/1T流量/30M带宽/年付¥288【点击购买】

ajax与action,WordPress主题开发之wp_ajax_{$action}和wp_ajax_nopriv_{$action}的区别

`微信`扫码 加好友

链接到文章: https://www.gkxyz.com/ajaxyuactionwordpresszhutikaifazhiwp_ajax_actionhewp_ajax_nopriv_actiondequbie.html

推荐站点

  • Vultr

    Vultr Global Cloud Hosting – Brilliantly Fast SSD […]

  • Akamai(Linode)

    Deploy more with Linux virtual machines, global infrast […]

  • RAKsmart

    主机商介绍:RAKsmart是知名的美国服务器租用商,包括美国站群服务器、美国cn2服务器、香港服务器等热门产 […]

  • 阿里云-为了无法计算的价值

    阿里云——阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司之一。提供免费试用、云服务器、云数据库、云 […]

评论已关闭