如果使用WPMU登录到不正确的站点,则WordPress重定向

时间:2015-01-15 04:05:56

标签: php wordpress-plugin wordpress

我正在尝试让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”。

谢谢!

1 个答案:

答案 0 :(得分:0)

问题在于我使用的是Admin Menu Editor,它会覆盖WordPress的默认行为,因此,“admin_page_access_denied”从未被调用过。我在这个插件中添加了一个do_action('admin_page_access_denied'),拒绝访问用户。我希望这可以帮助别人不要撞墙几个小时。 :)