TheDeadMedic不太正确。WordPress内置了AJAX功能。使用带有参数’action’的POST将ajax请求发送到/wp-
admin/admin-ajax.php:
jQuery(document).ready(function(){ jQuery(".foobar").bind("click", function() { jQuery(this).toggleClass('clicked'); jQuery.ajax({ type:'POST', data:{action:'my_unique_action'}, url: "http://mysite/wp-admin/admin-ajax.php", success: function(value) { jQuery(this).html(value); } }); });});然后,如果只希望它对已登录的用户起作用,则将其钩在插件中:
add_action('wp_ajax_my_unique_action',array($sample_plugin,'doAjax'));或像这样钩住它仅适用于未登录的用户:
add_action('wp_ajax_nopriv_my_unique_action',array($sample_plugin,'doAjax'));如果您希望它对每个人都有用,请同时使用两者。
admin-ajax.php已经使用了一些动作名称,因此请确保您浏览文件并且不要使用相同的动作名称,否则您将不小心尝试执行诸如删除注释等操作。
编辑
抱歉,我不太清楚这个问题。我以为你在问如何做一个ajax请求。无论如何,我会尝试两件事:
首先,让您的函数仅回显不带
a标签的单词AJAX 。接下来,尝试更改您的ajax调用,以使其同时具有成功和完整的回调:
jQuery(document).ready(function(){ jQuery(".foobar").bind("click", function() { var val = ''; jQuery(this).toggleClass('clicked'); jQuery.ajax({ type:'POST', data:{action:'my_unique_action'}, url: "http://mysite/wp-admin/admin-ajax.php", success: function(value) { val = value; }, complete: function(){ jQuery(this).html(val); } }); });});


