Ниже рассмотрим как изменить основной сайт (блог) сети в WordPress Multisite. Например, у нас уже установлена и работает сеть сайтов, и теперь нам нужно изменить основной сайт сети - основной сделать не основным, а один из под-сайтов сделать основным.
Чтобы самому разобраться как WP определяет главный сайт, я бы посоветовал залезть в ядро и разобраться в методе WP_Network::get_main_site_id(). По идее там вы найдете все ответы как определяется главный сайт (блог) сети сайтов и на основе этой информации поймете как и что нужно сделать, чтобы ничего не испортить.
Для проведения преобразования необходимо внести изменения в wp-config.php
, а также в базу данных.
Шаг 1: Создайте резервную копию файлов и базы данных
Прежде чем приступить к изменению данных, вам обязательно нужно создать резервную копию. Как для базы данных, так и для файлов.
Шаг 2: Отредактируйте wp-config.php
Откройте файл и найдите там строки:
define( 'SITE_ID_CURRENT_SITE', 1 ); define( 'BLOG_ID_CURRENT_SITE', 1 );
Число 1
указывает на то, какой из сайтов является сайтом сети сайтов и какой из сайтов является основным блогом в текущей сети. Обычно это один и тот же сайт (блог).
Чтобы узнать ID, которые вы должны ввести здесь, вам нужно открыть вашу базу данных - таблицу wp_blogs
:
Там вы найдете колонки blog_id
и side_id
, а также связанные с ними домен и путь.
Теперь укажите нужные blog_id
в wp_config.php и сохраните файл. В нашем случае это будет (см, ниже):
define( 'SITE_ID_CURRENT_SITE', 1 ); define( 'BLOG_ID_CURRENT_SITE', 2 );
SITE_ID_CURRENT_SITE
обычно не изменяется в 99% случаев у вас есть всего одна сеть сайтов (см. таблицу wp_sites
).
Значение blog_id
для BLOG_ID_CURRENT_SITE
- блог который вы хотите сделать основным сайтом, также можно найти на странице админки: My Sites > Network Admin > My Sites.
Шаг 3: Настройка базы данных
Если вы пропустили шаг 2, вам нужно открыть базу данных WordPress и зайти в таблицу wp_blogs
.
Для того чтобы установить новый сайт (блога) как основной, вам нужно настроить колонку domain
. Здесь нужно ввести значение из исходной страницы.
На этом настройка домена закончена.
Шаг 4: Редактирование таблицы wp_site
Теперь переключитесь на таблицу wp_site
. Там вы найдете запись с полями id
, domain
и path
.
Здесь вы должны убедиться, что в колонке domain
находится тоже самое, что и в таблице wp_blogs
. То есть запись, которую вы изменили.
Шаг 5: Адаптируйте таблицу wp_post.
Если вы изменили домен или путь у сайта, то вам нужно исправить все ссылки в БД связанные с этими изменениями. Например, это ссылки на картинки.
Лучше всего это сделать через WP_CLI командой search-replace. Или можно через прямой запрос:
UPDATE wp_posts SET post_content = REPLACE ( post_content, 'http://old-url', 'http://new-url' );
--
Не стесняйтесь оставлять комментарии, если у вас есть вопросы или замечания.
Вольный перевод: https://www.forge12.com/en/blog/change-the-primary-block-in-wordpress-multisite/