文章目录
本文最后更新于 2022-10-14,已超过 365 天未更新,内容可能已失效。

有一个主题需要在文章页面提交Ajax请求,并在当前页面进行服务端处理,按照常规方法编写代码,结果总是返回404错误。

WordPress主题或插件Ajax请求的正确姿势是:通过admin-ajax.php页面提交。

服务端处理:

如果是主题开发,在functions.php中添加以下代码:

function funcname() {
	//服务端处理
}
add_action('wp_ajax_funcname', 'funcname'); //已登录用户
add_action( 'wp_ajax_nopriv_funcnamer', 'funcname' ); //未登录用户

注意funcname为处理函数的名称,可以自定义。hook有两个,一个用于已登录用户,另一个用于未登录用户,两个钩子可以对应不同的函数,以便对不同用户作出不一样的处理,这里的示例对不同用户都作同样的处理。

前端脚本:

<?php echo admin_url("admin-ajax.php"); ?>

 

前端示例代码:

$.ajax({
	cache: false,
	type: 'POST',
	dataType: 'json',
	url: '<?php echo admin_url("admin-ajax.php"); ?>',
	data: $('form').serialize(),
	async: true,
	success: function (data) {
		if (data.status == 'success') {
		} else {
		}
	},
	error: function(e){
		console.log(e.status + ':' + e.statusText);
	}
});


服务端示例代码:

 

function my_func() {
	$name = $_POST['name'];
	die(json_encode(array('status' => 'success', 'info' => $name)));
}
add_action('wp_ajax_my_func', 'my_func');
add_action( 'wp_ajax_nopriv_my_func', 'my_func' );


 

CC 许可协议
署名-非商业性使用-相同方式共享 4.0 国际 了解协议
文章链接:https://zptheme.com/5380.html
本文作者:子佩·来源:子佩工作室

除非注明,子佩工作室 文章均为原创,转载请以链接形式标明本文地址。

相关推荐

登录后即可发表评论

社交账号登录

全部评论 (0)