将多站点/网络站点名称限制为用户的属性

时间:2013-06-14 作者:Aren Cambre

我们需要限制用户在创建自己的博客时可以选择的博客名称。

我们有一个WordPress网络,配置为所有博客共享一个域名。E、 g。,domain.name.com/x, domain.name.com/y, 等

我们已经使用Active Directory集成插件将WordPress网络与公司Active Directory集成。该插件将用户的mailnickname 属性(电子邮件地址中@) 进入nickname 领域

我希望允许用户自行创建自己的博客,但限制博客名称,以便它必须与nickname 他们的WordPress帐户的字段。E、 g.,一个有昵称的用户jdoe 只能创建名为domain.name.com/jdoe.

理想情况下,打开/wp-signup.php, 如果blogname 字段甚至不显示。

有没有一种方法可以在没有PHP定制的情况下做到这一点?我希望插件已经存在,但我找不到。

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

正在查看the source of wp-signup.php, 看起来你最好的选择可能是过滤signup_blog_init (第3.5.1节第303行):

/*
add_filter( \'signup_blog_init\', \'wpse103022_blog_name\' );
function wpse103022_blog_name( $blog_details ) {
    // Set $username to the user\'s username
    $blog_details[\'blogname\'] = $username;
    return $blog_details;
}
*/
// see code below for replacement
我不能百分之百肯定这会奏效,但值得一试。

编辑好了,在你的评论之后,我看了一下validate_blog_signup(). 它调用wpmu_validate_blog_signup(), 提供一个过滤器--wpmu_validate_blog_signup. Looking at the code, 似乎应该采取以下措施:

add_filter( \'wpmu_validate_blog_signup\', \'wpse103039_blog_name\' );
function wpse103039_blog_name( $blog_details ) {
    $blog_details[\'path\'] = \'/\' . $desired_blogname; // however you get it
    return $blog_details;
}
如果我读对了代码,您可以筛选:

  • domain
  • path
  • blogname
  • blog_title
  • user
  • errors

结束

相关推荐

Issue with Multisite and SSL

我有一个带有子目录和SSL的多站点。我更改了主站点和一个子网站的选项表,但ssl仅注册主站点。我甚至选中了“更新siteurl和主页”选项。如果它在物理上键入https,那么该站点将注册,并且签出页面上不会显示不安全标志,但小锁不会显示,它表示该站点并不完全安全。我如何定位它?https://www.kickinkaratesystems.com/https://www.kickinkaratesystems.com/akitournament/