我有一个网站,要求用户有一个帐户才能使用它。我不希望某些用户角色有权访问wp admin。所有帐户更改都应在前端帐户管理模板上进行。如果用户试图访问wp admin,我想将其重定向回站点主页。
function redirect_user(){
//...some code...
//Have tried:
//if(empty(DOING_AJAX) && $users_role ==\'somerandomrole\') //this works on frontend but allows access to wp-admin
//if(is_admin() && $users_role ==\'somerandomrole\') //stops access to wp-admin but then frontend stops working
if((is_admin() || !empty(DOING_AJAX)) && $users_role ==\'somerandomrole\')
{
wp_safe_redirect(home_url());
exit;
}
}
add_action(\'admin_init\', \'redirect_user\');
我遇到的问题是,我们的站点有一些动态组件,例如通过管理ajax发出请求的搜索工具。php,但由于逻辑原因,会重定向请求(即没有搜索结果)。有没有办法做到这一点?Edit:好吧,有一种解决方案似乎确实可行,但感觉不太对劲,那就是:
if($_SERVER[\'PHP_SELF\'] != \'/wp-admin/admin-ajax.php\' && $users_role ==\'somerandomrole\'){
//...code...
}
这样做是否有不良副作用?