更改多站点子站点的登录页

时间:2017-07-28 作者:Rick Hellewell

在多站点安装中,我使用了“更多隐私”插件来限制对特定子网站www.example的访问。com/私人网站。其他子网站不是私有的。这工作正常。

我使用创建了一个自定义登录页https://codex.wordpress.org/Customizing_the_Login_Form 信息所有子网站都使用相同的主题,因此自定义登录页面代码位于该子主题的函数中。php文件。

进一步自定义自定义登录表单的最佳方式是什么http://www.example.com/privatesite 与具有不同的登录页http://www.example.com/publicsite , 即使所有子网站使用相同的主题?

我怀疑我需要一些逻辑来“感知”正在访问的子网站。

谢谢

Added: the final code used based on the approved answer

我从@hwl获取了选中的答案,并使用此功能获取博客名称,以便它可以显示在自定义登录屏幕上:

function get_the_blog_name() {
    $blog_id = get_current_blog_id();
    $blog_info = get_blog_details($blog_id);
    $blogname = $blog_info->blogname;
    return $blogname;
}
谢谢你的帮助!

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

您可以使用获取当前博客id(即网络中的站点、您的子站点)get_current_blog_id() 您可以使用get_blog_details()

抄本:get_blog_details(), 传递的id为1, 可以返回以下对象:

   [blog_id]      => 1
   [site_id]      => 1
   [domain]       => foo-multi-site.com
   [path]         => /site-path/
   [registered]   => 2014-07-31 14:51:09
   [last_updated] => 2014-07-31 15:51:56
   [public]       => 1
   [archived]     => 0
   [mature]       => 0
   [spam]         => 0
   [deleted]      => 0
   [lang_id]      => 0
   [blogname]     => Site Name
   [siteurl]      => http://foo-multi-site.com/this-site
   [post_count]   => 
如果您没有将id传递给get_blog_details(), 它调用get_current_blog_id() 并使用该值。

所以可能有这样一个条件:

$current_blog = get_blog_details();
if ( $current_blog->path === \'/privatesite/\' ) {
    //display log in or call template for private site
}
else {
    //do what you need for default log in
}

结束

相关推荐

WordPress无法访问wp-login.php

对于miskate,我在设置->常规上更改wordpress的url。为了恢复这一点,我更改了wp配置。php文件,并添加此配置。phpdefine(\'WP_HOME\',\'localhost/wordpress\'); define(\'WP_SITEURL\',\'localhost/wordpress\'); 然后我重新启动了apache,我希望我可以再次进入我的管理面板。但是每次我使用localhost/wordpress/wp登录时。php我收到404未找到想法?