拒绝仪表板访问中断AJAX请求

时间:2015-06-26 作者:Mark

我需要限制非管理员对仪表板的访问。因此,我在函数中使用这个函数。php:

function ggp_restrict_dashboard_access_function() {
    if (!current_user_can(\'administrator\')){
        wp_redirect(home_url());
    }
}
add_action(\'admin_init\', \'ggp_restrict_dashboard_access_function\', 1);
问题是,正因为如此,Ajax调用为未登录用户以及登录的非管理员用户返回301。

我如何解决这个问题?

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

您还需要检查钩子中是否存在AJAX请求:

if ( ! current_user_can( \'administrator\' ) && ( ! defined( \'DOING_AJAX\' ) || ! DOING_AJAX ) ) {
    wp_redirect( home_url() );
}

结束