【发布时间】:2018-12-22 12:09:43
【问题描述】:
我已经仔细研究了其他线程的 WordPress AJAX 问题,其中包含 400 个错误,但我似乎无法正确解决这个问题。
我在 WordPress 中尝试实现一些 AJAX。现在我有一些虚拟函数只是为了了解 AJAX 功能,但我无法让它们工作。
在我的页面模板上,我在页面底部有这个 Javascript:
<script>
var ajax_url = "<?php echo admin_url( 'admin-ajax.php' ); ?>";
var data = { action : 'bp_check_user_role' };
jQuery.post(ajax_url, data, function (success) { console.log(success); });
</script>
在我的代码片段插件中,我有这个 PHP:
function bp_check_user_role() {
echo "Hi!";
die();
}
add_action('wp_ajax_bp_check_user_role', 'bp_check_user_role');
add_action('wp_ajax_nopriv_bp_check_user_role', 'bp_check_user_role');
我觉得我在正确执行这两个步骤,但是当我加载页面时代码不起作用并且我得到了这个(我已经清理了 {mysite},但它是正确的):
jquery.js?ver=1.12.4:4 POST https://{mysite}.com/wp-admin/admin-ajax.php 400 ()
我有什么想法或明显的错误吗?我似乎无法破解这个:(
除了提到 WordPress Codex 之外,我还阅读过以下主题: https://wordpress.stackexchange.com/questions/220661/use-ajax-without-a-plugin Wordpress Ajax always returns 0
【问题讨论】:
-
访问
https://{mysite}.com/wp-admin/admin-ajax.php?action=bp_check_user_role,看看您是否看到“嗨!”文本。如果不是,那么您的 AJAX 操作可能是在 WordPress 触发所有已注册的 AJAX 操作之后注册的。 -
它返回 0 - 感谢您的引导。我用于 PHP 的代码片段插件可以选择仅在前端或后端运行代码,为了提高效率,我只运行 PHP 前端。我将其切换为仅后端,现在它可以工作了!
-
Sally,如果您发布答案,我会很高兴地评论调试步骤如何帮助我并将其标记为正确 :) 非常感谢!
-
很高兴我的建议/评论对您有所帮助。我已经发布了一个答案,希望它也能帮助其他人。 =)
标签: javascript php ajax wordpress