当开始新的网络安装时,第一步是单站点安装,在wp-config.php
文件:
define( \'WP_ALLOW_MULTISITE\', true );
之后我们要去
Tools > Network Setup
, 输入一些详细信息,如网络名称和超级管理员电子邮件,最后点击按钮运行安装程序。
弹出窗口的下一步实际上是两个步骤:
向您的wp-config.php
文件
define( \'MULTISITE\', true );
define( \'SUBDOMAIN_INSTALL\', true );
define( \'DOMAIN_CURRENT_SITE\', \'example.com\' );
define( \'PATH_CURRENT_SITE\', \'/\' );
define( \'SITE_ID_CURRENT_SITE\', true );
define( \'BLOG_ID_CURRENT_SITE\', true );
为您的
.htaccess
文件由于我不进行单站点安装(没有任何理由),我想将这些常量动态添加到
wp-config.php
文件:
define( \'WP_ALLOW_MULTISITE\', true );
if ( SOME_CHECK_IF_STEP-1_WAS_PASSED )
{
define( \'MULTISITE\', true );
define( \'SUBDOMAIN_INSTALL\', true );
define( \'DOMAIN_CURRENT_SITE\', \'example.com\' );
define( \'PATH_CURRENT_SITE\', \'/\' );
define( \'SITE_ID_CURRENT_SITE\', true );
define( \'BLOG_ID_CURRENT_SITE\', true );
}
所以我不必去
wp-config.php
每次,然后再次编辑。
我想到的第一件事是检查数据库中{$wpdb->prefix}sitemeta
表,但我不想对每个站点负载进行额外的查询。我想到的第二件事是检查blogs.dir
已经存在,但事实并非如此。
Question: 我怎样才能表明我已经通过了网络设置的第一步,而不会产生巨大的开销或降低性能。
SO网友:Ünsal Korkmaz
检查wp-admin/network.php
和wp-admin/includes/schema.php
文件。您可以根据创建条件WP_INSTALLING_NETWORK
更新时间:
if (is_admin()){
/* First Step */
if (!defined( \'WP_ALLOW_MULTISITE\')){
$current_wp_config = file_get_contents(ABSPATH . \'wp-config.php\');
$my_defines = "/* First we put WP_ALLOW_MULTISITE */\\r\\n" .
"define(\'WP_ALLOW_MULTISITE\', true); \\r\\n";
$current_wp_config = str_replace("/* That\'s all, stop editing", $my_defines . "/* That\'s all, stop editing", $current_wp_config);
file_put_contents(ABSPATH . \'wp-config.php\', $current_wp_config);
}
/* Second Step */
if (!defined("WP_DEFINES_IMPORTED") && defined("WP_INSTALLING_NETWORK") && $_POST){
$current_wp_config = file_get_contents(ABSPATH . \'wp-config.php\');
$my_defines = "/* Now we define */\\r\\n" .
"define(\'WP_DEFINES_IMPORTED\', true); \\r\\n" .
"define(\'MULTISITE\', true); \\r\\n".
"define(\'SUBDOMAIN_INSTALL\', true); \\r\\n".
"define(\'DOMAIN_CURRENT_SITE\', \'". get_clean_basedomain() . "\'); \\r\\n".
"define(\'PATH_CURRENT_SITE\', \'". parse_url( trailingslashit( get_option( \'home\' ) ), PHP_URL_PATH ) . "\'); \\r\\n".
"define(\'SITE_ID_CURRENT_SITE\', 1); \\r\\n".
"define(\'BLOG_ID_CURRENT_SITE\', 1); \\r\\n";
$current_wp_config = str_replace("/* That\'s all, stop editing", $my_defines . "/* That\'s all, stop editing", $current_wp_config);
file_put_contents(ABSPATH . \'wp-config.php\', $current_wp_config);
}
}
将此放入mu插件文件夹
全新wp安装转到管理面板单击工具单击网络设置运行安装程序利润