了解 WordPress 多站点是否为新博客使用子目录或子域

问题描述 投票:0回答:3

是否有功能可以在创建新博客时检查 WordPress 多站点安装是否使用子目录或子域选项?

我正在使用函数 wpmu_create_blog 创建新博客。 法典解释:

在子目录安装中,$domain 与主站点的域相同,路径是子目录名称(例如“example.com”和“/blog1/”)。在子域安装中,$domain 是新的子域 + 根域(例如“blog1.example.com”),$path 是“/”。

所以我需要一种方法来查明多站点是否是子目录或子域安装。

wordpress subdomain subdirectory
3个回答
5
投票

嗯,我们在wp-config.php

中定义了非常常数:

if ( defined( 'SUBDOMAIN_INSTALL' ) ) 
{
    if( SUBDOMAIN_INSTALL )
        echo '<h2>Is: SUBDOMAIN</h2>';
    else
        echo '<h2>Is: SUBDIRECTORY</h2>';
}

3
投票

您可以使用

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
}

当然,这仅在至少创建了一个附加博客时才有效,但我找不到任何其他选项来检查。


0
投票

从 WordPress 3.0.0 版本开始,除了 VHOST 变量之外,还有一个函数

is_subdomain_install()
可以检查常量变量。我建议继续使用它,这样它更有可能面向未来。

if( is_subdomain_install() ) {
    // Is subdomain
} else {
    // Is subdirectory
}

该函数的源代码可以在

wp-includes/ms-load.php
中找到。

© www.soinside.com 2019 - 2024. All rights reserved.