我们需要限制用户在创建自己的博客时可以选择的博客名称。
我们有一个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定制的情况下做到这一点?我希望插件已经存在,但我找不到。
最合适的回答,由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