Admin-ajax.php 302错误Wordpress

时间:2014-10-14 12:53:31

标签: php jquery ajax wordpress conflict

我有一个Wordpress网站和2种用户。管理员和订阅者。如果订户试图访问wp-admin区域,我希望他重定向到该站点的主页。我有一个功能来执行此操作,但当我尝试访问网站上的其他页面时,例如在某处发布评论,它会在页面内加载我当前的主页,并且不会发布评论和任何内容我做的其他动作。从网络错误中我看到admin-ajax.php 302错误。据我所知,Wordpress为ajax使用了两个不同的钩子,一个用于管理员端,一个用于注销用户,它与我的问题有关,但我不明白如何解决它。

function mt_redirect_admin(){

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

提前感谢您的回答

1 个答案:

答案 0 :(得分:3)

解决:

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 );