Ajax 与 wordpress 的工作方式略有不同。不是通过 ajax 将信息发送到要获取的函数的 url,而是将其发送到“/wp-admin/admin-ajax.php”,它会触发 wp_ajax 挂钩,或者在前端的情况下触发 wp_ajax_nopriv 挂钩。
当这个文件接收到信息时,它会将你的 ajax 函数中的 action: 变量与添加到 wp_ajax_nopriv_ 钩子(如果是前端)或 wp_ajax(如果是后端)的操作相匹配。
需要明确的是,这只是服务器端代码。您将需要 jQuery 来触发一个动作(例如按下按钮),然后将信息发送到该动作并检索输出。例如
jQuery('#image').click(function() { // fires when some element with id #image is click on
jQuery.ajax({
type: "POST",
url: "/wp-admin/admin-ajax.php",
data: {
action: 'sample_ajax_function',
reg: regnum, // any other data you want to send?
maketaxonomy: '<?php echo $maketaxonomy;?>'
},
success: function (output) { // if data is returned from your function you can pick it up using output now.
console.log(output); //log it to your console so you can see what is returned.
},
});
});
然后在你的函数文件中。
add_action('wp_ajax_nopriv_sample_ajax_function', 'my_ajax_function');
function my_ajax_function() {
$reg= $_POST['reg'];
echo $reg; //output something.
exit; // no more output
}
如果您正在寻找一种可以用来上传图片的方法,请查看此处Html multiple file input - javascript access and delete files。