某些在 Wordpress 中使用 Ajax 的插件只有在您以管理员身份登录或添加这些 Hook 时才能工作:
add_action('wp_ajax_my_action', 'my_action_callback');
add_action('wp_ajax_nopriv_my_action', 'my_action_callback');
但我真的很难让非管理员用户使用所有功能,我想知道是否有一种简单的方法(对于 js/php noobs)告诉 wordpress 全局激活所有 ajax 函数所有用户,无论是否登录。
我知道如果可能的话,这可能是一种非常愚蠢和冒险的方法,但请告诉我!?!!?
最佳答案
在 PHP 方面,上面的代码一针见血。这对于每个 AJAX 操作都是必需的,因为每个操作当然会调用不同的函数。
现在,我假设您正在使用默认的 Wordpress AJAX 调用 -
jQuery.post(ajax_object.ajax_url, data, function(response) {
如果确实如此,对于前端调用,很可能未设置 ajax_object.ajax_url
。要设置它,请将以下内容添加到您的 functions.php
文件 -
<?php
add_action('wp_head', 'plugin_set_ajax_url');
function plugin_set_ajax_url() {
?>
<script type="text/javascript">
var ajax_object = {};
ajax_object.ajax_url = '<?php echo admin_url('admin-ajax.php'); ?>';
</script>
<?php
}
?>
关于javascript - 让 Ajax 为 Wordpress 上的所有用户工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20100218/