有没有办法在不使用插件的情况下,让所有用户访问多站点网络中的一个博客?

时间:2013-11-11 作者:tobek

我知道有各种各样的插件可以帮助多站点用户管理,但我们有一个避免插件的政策:a)过度的安全策略,b)干扰我们已经进行了大量修改的WordPress安装(这之前对我们有点影响)。

此外,简单地将所有~10000名用户添加到这个博客似乎并不雅观。这是一批wp_usermeta.

我是否可以截取任何过滤器或操作来表示“如果这是博客X,那么让任何注册用户通过”?这个admin_init action hook允许我根据任意标准限制用户,但我不知道如何让他们通过。

1 个回复
SO网友:fuxia

您可以筛选get_blogs_of_user 并将此特定博客添加到返回的列表中。伪代码,未测试:

add_filter( \'get_blogs_of_user\', \'add_special_blog\', 10, 3 );

function add_special_blog( $blogs, $user_id, $all )
{
    $new_blog = get_blog_details( $special_blog_id );

    $blogs[ $special_blog_id ] = (object) array(
    \'userblog_id\' => $special_blog_id,
    \'blogname\'    => $new_blog->blogname,
    \'domain\'      => $new_blog->domain,
    \'path\'        => $new_blog->path,
    \'site_id\'     => $new_blog->site_id,
    \'siteurl\'     => $new_blog->siteurl,
    \'archived\'    => 0,
    \'spam\'        => 0,
    \'deleted\'     => 0
    );

    return $blogs;
}

结束

相关推荐

order users with drag'n'drop?

有很多插件可以让你通过拖放来订购页面和/或帖子。是否有与订单用户类似的内容?如果没有,是否可以为此创建一个插件(即是否有足够的过滤器、操作等)?