При запуске с новой сетевой установкой первым шагом является установка с одного сайта, в которой есть одна дополнительная строка в 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
каждый раз заходить и редактировать его снова.
Первое , что пришло мне на ум , чтобы проверить DB для {$wpdb->prefix}sitemeta
таблицы, но я не хочу , чтобы сделать дополнительный запрос на каждой загрузке сайта. Вторая вещь , которую я думал о том , чтобы проверить , если blogs.dir
уже существует, но это не так.
Вопрос: Как я могу указать, что я уже прошел первый шаг настройки сети таким образом, что это не приводит к значительным перегрузкам или снижению производительности.
wp-config
генератор Grunt .Ответы:
Я не проверял это, но если вам нужно будет найти такое решение, я, вероятно, попытался бы сделать это следующим образом, добавив скрипт в
if ( SOME_CHECK_IF_STEP-1_WAS_PASSED )
условие, которое вы описали выше, что бы:{$wpdb->prefix}sitemeta
таблицы;wp-config.php
-> вернуть true.Задание WP cron переписывает,
wp-config.php
чтобы полностью исключить проверку.Таким образом, у вас будет только дополнительный запрос к БД, пока сеть не будет настроена и работа cron не сделает свое дело.
Обратите внимание, что это стоит усилий, хотя ...;)
источник
wp-config.php
файл напрямую, но я полагаю, что он будет заблокирован в этот момент ...Проверять
wp-admin/network.php
иwp-admin/includes/schema.php
файлы. Вы можете создать условие на основе WP_INSTALLING_NETWORKОбновить:
источник
wp-load.php
тянетwp-config.php
раньше, поэтомуWP_INSTALLING_NETWORK
не будет определен. Но даже если он будет доступен, он доступен только во время настройки сети. Что бы я сделал, чтобы оставить константы после запуска установки?index.php
тянет./wp-blog-header.php
), который потом тянетwp-load.php
и оттудаwp-config.php
называется. Обзор можно найти здесь .admin.php
сам вызывается доsetup.php
иnetwork.php
(и вызываетwp-load.php
себя в начале), так что конфигурация уже запущена.WP_INSTALLING_NETWORK
получаетdefine()
без проверки , если это ужеdefined()
, я бы создатьFatal Error
там. Пожалуйста, докажите, что я не прав, и проведите тест. :)wp-config.php
файла для записи - это угроза безопасности. Учтите, что у вас есть все важные детали. Я показал вам, что это никак не сработает (не имея доступного для записи файла конфигурации). Я ищу индикатор (который не замедляет работу системы), который я могу проверить и использовать в качестве переключателя. Все остальное не сработает.Если ваши настройки каждый раз одинаковы (установка субдомена), вы можете вставить весь чанк в первый шаг:
define( 'MULTISITE', true ); define( 'SUBDOMAIN_INSTALL', true ); define( 'DOMAIN_CURRENT_SITE', $_SERVER[ 'HTTP_HOST' ] ); define( 'PATH_CURRENT_SITE', '/' ); define( 'SITE_ID_CURRENT_SITE', true ); define( 'BLOG_ID_CURRENT_SITE', true );
источник
DOMAIN_CURRENT_SITE
константой, которую WordPress дает вам после завершения внутренней настройки.