我已经定制了一个插件来做一些Ajax调用admin-ajax.php并且它工作的很好。我复制的代码转移到另一个网站,它不再适用于未登录谁的用户Wordpress admin-ajax导致错误302重定向
从萤火虫:
POST http://./wp-admin/admin-ajax.php 302 Moved Temporarily 1.08s
GET http://./ 200 OK
编辑:现在的问题是什么可能一个主题可能做重定向ajax请求。该插件有两个挂钩:
add_action('wp_ajax_em_ajax_getEvents', 'em_ajax_getEvents'); // ajax for logged in users
add_action('wp_ajax_nopriv_em_ajax_getEvents', 'em_ajax_getEvents'); // ajax for not logged in users
他们都很好地工作在大多数的网站,但一个主题重定向非登录用户莫名其妙的请求。由于这些操作对于插件而言是特定的,因此我无法从哪里开始寻找。
SOLUTION:非常感谢Ronald Huereca为add_action('init'的解决方案,那就是究竟在何处违规重定向被挂上,在保护管理方面的尝试。现在我只需要在这里找到一个安全的解决方案,不会影响主题的管理区域,但也不妨碍其他插件允许用户发出匿名的Ajax请求。
// stop users accessing the admin
add_action('init', array($this, 'prevent_admin_access'), 0);
function prevent_admin_access() {
if (strpos(strtolower($_SERVER['REQUEST_URI']), '/wp-admin') !== false) {
$current_user = wp_get_current_user();
if(!user_can($current_user->ID, 'administrator') && (!user_can($current_user->ID, 'contributor'))){
wp_redirect(get_option('siteurl'));
}
}
}
+0
这个问题没有提到任何有关问题。阐述。 –
2012-02-23 08:00:19
+0
对不起,问题在于我不知道可以将ajax请求重定向到admin-ajax。PHP的行动是我自己的,他们工作得很好,所以在哪里可以阻碍重定向。 –
2012-02-23 18:23:41
+0
请忽略(删除评论不工作;( –
2014-02-10 15:13:00