我正在尝试让WordPress自动从somesite.com/wp-admin(如果用户成功登录)重定向到用户所在的博客(somesubsite.somesite.com/wp-admin)。我写了以下代码:
add_action( 'admin_page_access_denied', 'redirect_user_to_correct_blog' );
function redirect_user_to_correct_blog()
{
if ( ! is_user_logged_in() || is_network_admin() ){
return;
}
$blogs = get_blogs_of_user( get_current_user_id() );
//var_dump($blogs);
if ( wp_list_filter( $blogs, array( 'userblog_id' => get_current_blog_id() ) ) ){
return;
}
if(count($blogs)==1){
$blog=reset($blogs);
wp_redirect(get_admin_url($blog->userblog_id));
exit();
}
}
但是这段代码似乎没有执行(我放置了已删除的日志代码)。有谁知道我做错了什么?我正在运行目前可用的所有插件/ WordPress的最新版本。
目前,当用户登录somesite.com/wp-admin时,我得到:“您没有足够的权限来访问此管理页面。”它们被发送到“somesite.com/wp-admin”而不是“somesubsite.somesite.com/wp-admin”。
谢谢!
答案 0 :(得分:0)
问题在于我使用的是Admin Menu Editor,它会覆盖WordPress的默认行为,因此,“admin_page_access_denied”从未被调用过。我在这个插件中添加了一个do_action('admin_page_access_denied'),拒绝访问用户。我希望这可以帮助别人不要撞墙几个小时。 :)