是否有功能可以在创建新博客时检查 WordPress 多站点安装是否使用子目录或子域选项?
我正在使用函数 wpmu_create_blog 创建新博客。 法典解释:
在子目录安装中,$domain 与主站点的域相同,路径是子目录名称(例如“example.com”和“/blog1/”)。在子域安装中,$domain 是新的子域 + 根域(例如“blog1.example.com”),$path 是“/”。
所以我需要一种方法来查明多站点是否是子目录或子域安装。
嗯,我们在wp-config.php
if ( defined( 'SUBDOMAIN_INSTALL' ) )
{
if( SUBDOMAIN_INSTALL )
echo '<h2>Is: SUBDOMAIN</h2>';
else
echo '<h2>Is: SUBDIRECTORY</h2>';
}
您可以使用
wp_get_sites()
获取有关您的博客的信息。它将返回一个包含所有现有博客信息的数组。
来自文档的示例结果:
Array(
[0] => Array(
[blog_id] => 1
[site_id] => 1
[domain] => example.com
[path] => /
[registered] => 2013-11-08 17:56:46
[last_updated] => 2013-11-08 18:57:19
[public] => 1
[archived] => 0
[mature] => 0
[spam] => 0
[deleted] => 0
[lang_id] => 0
)
[1] => Array(
[blog_id] => 2
[site_id] => 1
[domain] => example.com
[path] => /examplesubsite/
[registered] => 2013-11-08 18:07:22
[last_updated] => 2013-11-08 18:13:40
[public] => 1
[archived] => 0
[mature] => 0
[spam] => 0
[deleted] => 0
[lang_id] => 0
)
)
[0] 将是您的主要博客,所以我会忽略它。但是通过查看之后的第一个博客,您应该能够获得信息。
$info = wp_get_sites();
if ($info[1]['path'] == "/") {
// the installation uses subdomains
}
else {
// the installation uses subdirectorys
}
当然,这仅在至少创建了一个附加博客时才有效,但我找不到任何其他选项来检查。
从 WordPress 3.0.0 版本开始,除了 VHOST
变量之外,还有一个函数
is_subdomain_install()可以检查常量变量。我建议继续使用它,这样它更有可能面向未来。
if( is_subdomain_install() ) {
// Is subdomain
} else {
// Is subdirectory
}
该函数的源代码可以在
wp-includes/ms-load.php
中找到。