2014-10-14 3 views
2

У меня есть сайт Wordpress и 2 вида пользователей. Админы и подписчики. Если абонент пытается получить доступ к области wp-admin, я хочу, чтобы он перенаправлялся на домашнюю страницу сайта. У меня есть функция для этого, но когда я пытаюсь получить доступ к другой странице на сайте, например, чтобы размещать комментарий где-то, он загружает домашнюю страницу внутри страницы, с которой я в настоящее время являюсь, и не публикует комментарий и любые другие действия Я делаю. Из сетевых ошибок я вижу ошибку admin-ajax.php 302. Я понимаю, что Wordpress использует два разных крючка для ajax, один для администратора и один для выведенного из системы пользователя, и это имеет какое-то отношение к моей проблеме, но я не понимаю, как это исправить.Admin-ajax.php 302 error Wordpress

function mt_redirect_admin(){ 

if (! current_user_can('edit_events')){ 
    wp_redirect(site_url()); 
    exit;  
} 
} 
add_action('admin_init', 'mt_redirect_admin'); 

Заранее спасибо за любые ответы

ответ

3

Solved:

function mt_redirect_admin() { 

if (! current_user_can('edit_events') && (! defined('DOING_AJAX') || ! DOING_AJAX)) { 
    wp_redirect(site_url()); 
    exit; 
} 
} 

add_action('admin_init', 'mt_redirect_admin', 1);