Intereting Posts
Некоторые строки из файла .mo не загружаются Короткие коды не разрешены в ответе вызова AJAX Как я могу скрыть Home в моем меню на определенной странице? Какой лучший плагин для включения javascript в сообщение или на страницу? Как сопоставить субдомен в wordpress с основным доменом в многоуровневой настройке? Обновление страницы, чтобы сделать некоторые конкретные вещи Прямые посетители iPhone для разных таблиц стилей? WP_Widget Устарела Нужно загрузить загруженный двоичный файл просмотр моих сообщений на статической странице? Shortcode не возвращается правильно Показать сообщения пользователя из пользовательского типа сообщений в категории на front-end Как увидеть элемент в админе с его URL-адресом? (не уверен, что это страница, сообщение или что) sunrise.php для многосетевой установки плагина определения домена Функция Получить пользовательский объект по имени пользователя?

Переключение основного сайта в WordPress Multisite

Мы запускаем несколько поддоменных сайтов в среде WordPress Multisite и хотим перенести основной сайт из корня в поддомен:

Текущий сайт example.com с ID 1 (нельзя переименовать, потому что поле установлено и неотредактировано)

Новый сайт – new.example.com с ID 15 (пытался переименовать на example.com )

Я выполнил некоторые инструкции по переключению, которые включали переименование сайтов и обновление файла wp-config.php чтобы дать новый идентификатор 15 для SITE_ID_CURRENT_SITE и Blog_ID_CURRENT_SITE . В результате основной сайт не изменился, и администратор был отключен.

Есть ли прямой способ переключить главный сайт и заменить его содержимым сайта поддомена без импорта сообщений / страниц и плагинов?


ОБНОВИТЬ:

Спасибо, что дали эти советы. Мой вывод с тем, что я видел в базе данных, прочитал и получаю от вас, заключается в том, что для нового сайта субдомена для замены основного сайта необходимо иметь имена базовой таблицы и идентификатор 1, обновленные пути и т. Д. Мое единственное беспокойство заключается в том, что после их переключения у администратора сети возникнет проблема – поэтому мне нужно сравнить базовые таблицы (wp_options и т. д.) с эквивалентом (wp_x_options и т. д.), чтобы увидеть, есть ли что-то уникальное, связанное с сетевым администратором в этих базовых таблицах.

Solutions Collecting From Web of "Переключение основного сайта в WordPress Multisite"

Четыре года и ответа нет? Итак, вот мы идем … –

Давайте возьмем следующую настройку сети в качестве примера (я использую команду списка узлов WP-CLI):

 $ wp site list +---------+--------------------+---------------------+---------------------+ | blog_id | url | last_updated | registered | +---------+--------------------+---------------------+---------------------+ | 1 | http://wp.tmp/ | 2016-08-04 08:39:35 | 2016-07-22 09:25:42 | | 2 | http://foo.wp.tmp/ | 2016-07-22 09:28:16 | 2016-07-22 09:28:16 | +---------+--------------------+---------------------+---------------------+ 

Список сетевых сайтов будет выглядеть так:

список сетевых сайтов

Мы хотим использовать сайт с ID 2 в качестве нового корневого сайта с URL http://wp.tmp/ . Это на самом деле та же проблема, что и в вопросе, с некоторыми другими значениями для идентификатора и URL-адресов.

Многоуровневая соответствующая часть wp-config.php выглядит, вероятно, так:

 const MULTISITE = TRUE; const DOMAIN_CURRENT_SITE = 'wp.tmp'; const PATH_CURRENT_SITE = '/'; const SITE_ID_CURRENT_SITE = 1; const BLOG_ID_CURRENT_SITE = 1; const SUBDOMAIN_INSTALL = TRUE; 

Обновление настроек сайта базы данных

WordPress использует таблицы wp_*_option и wp_blogs чтобы найти соответствующий блог для заданного URL-адреса и создать правильные постоянные ссылки для этого блога. Поэтому мы должны изменить значения в следующих трех таблицах (для этого примера):

  • В wp_options ключи home и siteurl
  • В wp_2_options ключи home и siteurl (в вашем случае это будет wp_15_options )
  • В wp_blogs domain столбца для обоих сайтов с идентификаторами 1 и 2 (соответственно 15 )

Для этого я использую Adminer, но любое другое средство управления базами данных (PhpMyAdmin) выполняет эту работу. (На скриншотах показан графический интерфейс на немецком языке, но я думаю, идея понятна.)

adminer редактировать wp_options

В wp_options (таблица параметров для идентификатора сайта 1 ) я изменяю значения обоих ключей home и siteurl с http://wp.tmp на http://foo.tmp . (Снимок экрана выше показывает состояние перед обновлением.)

Я делаю то же самое со таблицей wp_2_options но здесь я меняю значение с http://foo.wp.tmp на http://wp.tmp .

Следующий шаг – обновить таблицу wp_blogs :

adminer редактировать wp_blogs (Опять же, скриншот показывает таблицу перед внесением каких-либо изменений.) Здесь вы просто переключаете значения с обоих сайтов в столбце domain :

  • wp.tmp становится foo.wp.tmp и
  • foo.wp.tmp становится wp.tmp

Теперь вам нужно обновить wp-config.php чтобы правильно обрабатывать новые данные настроек:

 const MULTISITE = TRUE; const DOMAIN_CURRENT_SITE = 'wp.tmp'; const PATH_CURRENT_SITE = '/'; const SITE_ID_CURRENT_SITE = 1; const BLOG_ID_CURRENT_SITE = 2; // This is the new root site ID const SUBDOMAIN_INSTALL = TRUE; 

На этом этапе у вас снова работает многопользовательский WordPress, но с новым корневым сайтом:

 $ wp site list +---------+--------------------+---------------------+---------------------+ | blog_id | url | last_updated | registered | +---------+--------------------+---------------------+---------------------+ | 1 | http://foo.wp.tmp/ | 2016-08-04 08:39:35 | 2016-07-22 09:25:42 | | 2 | http://wp.tmp/ | 2016-07-22 09:28:16 | 2016-07-22 09:28:16 | +---------+--------------------+---------------------+---------------------+ 

обновлен список сетевых сайтов

Помните: во время этого процесса ваш сайт будет недоступен, и в результате возникнут некоторые неприятные ошибки, поэтому вы можете организовать ответ 503 Service Unavailable перед установкой WordPress. Это можно сделать с помощью .htaccess .

Обновление содержимого базы данных

Теперь наступает сложная часть. На данный момент все URL-адреса в таблицах содержимого все еще указывают на ресурсы старых сайтов. Но заменить их не так просто: http://foo.wp.tmp каждый http://foo.wp.tmp на http://wp.tmp на первом шаге и каждый http://wp.tmp с http://foo.wp.tmp на следующем шаге в конечном итоге появятся все прежние URL-адреса, указывающие на идентификатор сайта 1 ( http://foo.wp.tmp ).

Лучший способ – вставить промежуточный шаг:

  • Найдите http://foo.wp.tmp и замените его предпочтительным уникальным http://3a4b522a.wp.tmp : http://3a4b522a.wp.tmp
  • Найдите http://wp.tmp и замените его на http://foo.wp.tmp
  • Найдите http://3a4b522a.wp.tmp и замените его на http://wp.tmp

Все эти команды поиска и замены должны игнорировать три таблицы ( *_options *_blogs ), которые мы обновляли до этого, иначе они *_blogs бы конфигурацию. Вы также можете вручную просмотреть URL-адреса в таблице wp_*_options вне ключей home и siteurl .

Я бы предложил использовать команду поиска-замены WP-CLI для этого, поскольку он может обрабатывать сериализованные данные и не имеет ограничений, которые могут иметь HTTP.