Импорт WordPress-сайта в мультисайтовую сборку и экспорт сайта из нее

Один из наиболее популярных вопросов, связанных с использованием мультисайтов в WordPress, заключается в следующем: «Могу ли я импортировать существующий сайт в мультисайтовую сборку?»

Другой популярный вопрос: «Могу ли я перевести какой-нибудь сайт из мультисайтовой сборки в отдельную сборку?»

Ответы на эти вопросы положительные. В данном руководстве мы посмотрим, как все это сделать. Сразу стоит сказать, что в реализации импорта/экспорта сайтов нет ничего сложного. Все основано на использовании соответствующих стандартных функций, существующих в WP.

Что будет импортировано

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

В частности, система не будет автоматически импортировать ваши плагины или темы. Также она не будет импортировать некоторые ваши настройки, структуру постоянных ссылок, заголовок вашего сайта и установки часового пояса. Вам понадобится настраивать свой сайт заново.

Давайте приведем краткую статистику того, что будет импортировано, а что нет.

Будут импортированы:

  • Записи
  • Рубрики
  • Метки
  • Медиафайлы
  • Страницы
  • Комментарии
  • Меню
  • Заголовок*
  • Бэкграунд*
  • Пользователи

Не будут импортированы:

  • Темы
  • Плагины
  • Виджеты
  • Заголовок*
  • Бэкграунд*
  • Пользовательские роли
  • Пользовательские пароли
  • Настройки

* WordPress импортирует любые медиафайлы (изображение заголовка, бэкграунд), однако не будет применять автоматически данные изображения к сайту. Также WordPress не будет импортировать настройки цветовой гаммы – скажем, если вы установили в качестве фона определенный цвет, WordPress не будет импортировать его.

Есть некоторые плагины, которые позволяют справиться с данной проблемой. Одним из таких плагинов является Widget Settings Importer/Exporter.

Экспорт сайта из отдельной сборки в мультисайтовую

1. Экспорт сайта.

Переходим в раздел Tools > Export, выбираем то, что нам требуется экспортировать в виде XML-файла, после чего жмем Download Export File.

Таким образом, мы сохраним этот файл на свой компьютер, после чего импортируем его на новый сайт.

export-screen

2. Импорт сайта

Некоторая информация, представленная ниже и связанная с именами пользователей, может показаться не совсем понятной. Преимущество мультисайтов заключается в том, что вы можете добавлять и удалять сайты по своему желанию. Если вдруг что-то пойдет не так, вы всегда можете удалить недавно созданный сайт и пройти весь процесс заново.

Давайте теперь начнем сам импорт.

Шаг 1. Устанавливаем новый сайт в своей мультисайтовой сборке.

Переходим к разделу My Sites > Network Admin > Sites > Add New.

URL-адрес сайта, который вы введете в поле Site Address, будет стандартным именем администратора для данного сайта. К примеру, если вы введете в качестве URL «xyz.example.com», то в таком случае имя администратора для этого сайта будет «xyz».

new-admin-name-new-site-name-700x447

Однако существует также одно небольшое исключение для данного правила. Если вы будете использовать почтовый адрес пользователя, уже зарегистрированного в мультисайтовой сборке, то в таком случае администратор получит имя этого пользователя.

Имя пользователя «Admin»

Многие люди используют имя «Admin» для аккаунта администратора. Однако, так как имя «Admin» уже может использоваться суперадминистратором в мультисайтах, у вас не получится назвать администратора нового сайта «admin» (даже если оно было таким на старом сайте). В дальнейшем мы посмотрим, как справиться с этой проблемой.

Если вы используете такой же электронный адрес, как и суперадминистратор в мультисайтовой сборке, причем суперадминистратор имеет имя пользователя «admin», то вы можете связать записи с этим пользователем – в итоге будет казаться, что записи публикуются автором «Admin».

Шаг 2. В качестве почты администратора вы можете поместить почтовый адрес администратора с вашей одиночной сборки. Если вы будете запускать сайт самостоятельно, то в таком случае вы можете поместить почтовый адрес для вашего суперадминистратора.

Шаг 3. Щелкаем Add Site.

Шаг 4. Переходим к консоли только что созданного сайта. Сделать это можно через удобную ссылку «Visit Dashboard», которая должна появиться сразу после создания нового сайта.

Доступ к консоли также можно получить через My Sites > Network Admin > Sites.

Шаг 5. В консоли нового сайта переходим к разделу Tools > Import.

Последняя настройка в списке должна относиться к WordPress. Если вы еще не устанавливали плагин импорта в мультисайтовой сборке, вы увидите следующее сообщение рядом с опцией WordPress:

«This importer is not installed. Please install importers from the main site»

install-importer-plugin

Если плагин импорта установлен, можете сразу перейти к шагу 12.

Шаг 6. Кликаем по данной ссылке.

После щелчка по ней вы перейдете к разделу Network Admin (покинете консоль вашего нового сайта).

Шаг 7. Щелкаем по ссылке WordPress.

install-importer-plugin

Шаг 8. Появится окно с плагином. Устанавливаем его, щелкая по ссылке Install Now.

install-importer-plugin-popup

Шаг 9. Теперь кликаем по ссылке Network Activate.

network-activate-plugin

Шаг 10. Возвращаемся к консоли нового сайта (My Sites > Network Admin > Sites).

Шаг 11. Переходим к разделу Tools > Import.

Шаг 12. Кликаем по ссылке WordPress в списке, чтобы загрузить файл, который до этого был сохранен на компьютере.

click-wordpress-link-to-upload

Шаг 13. Находим файл и загружаем его.

Шаг 14. Теперь мы рассмотрим проблему наличия администраторского аккаунта «admin» в отдельной сборке.

Как было замечено ранее, если суперадминистратор во всей сети имеет имя «admin» (или кто-то другой в сети имеет такое имя), то вы не сможете создать пользователя на новом сайте с именем «admin».

Когда вы добавляете новый сайт к сети, название сайта (URL) автоматически трансформируется в пользователя для данного сайта. Этот пользователь будет администратором по умолчанию. Если URL вашего сайта xyz.example.com, то в таком случае у вас будет пользователь с именем xyz, который будет администратором для данного сайта.

Как вы можете видеть ниже, я импортирую XML-файл из своей одиночной сборки. На том отдельном сайте у меня было два пользователя – один из них был назван как «admin», а второй – «singleuser».

authors-from-single-site

Также вы увидите выпадающий список «or assign posts to an existing user …» (или привязать записи к уже существующему пользователю). Как и следует из названия данной опции, все записи пользователя с именем «admin» на отдельном сайте будут присвоены новому администратору сайта – в нашем случае пользователю xyz.

Естественно, вы можете создать другого пользователя сайта еще до импорта, после чего просто присвоить ему все записи. Также вы можете использовать почтовый адрес, уже связанный с пользователем в мультисайтовой сборке.

assign-authors

Шаг 15. Также вам могут понадобиться все файловые прикрепления. Выделим соответствующий пункт на экране и щелкнем по кнопке Submit.

Готово. Теперь у вас есть импортированный сайт, в котором записи пользователя admin с вашего одиночного сайта будут присвоены стандартному администратору для нового сайта (в нашем примере – пользователю xyz).

Помните, что надо обновить пароли и роли импортированных пользователей. Также в новом блоге, который вы установите, будет стандартная страница по умолчанию и первая демо-запись «Привет, мир». Вам понадобится удалить все это.

Экспорт сайта из мультисайтовой сборки и преобразование его в отдельный сайт

Перед тем, как начать данный процесс, установите одиночную версию WordPress на сервер.

Шаг 1. Переходим к консоли отдельного сайта (в мультисайтовой сборке), который вы хотите экспортировать. Идем в Tools > Export.

Экспортируем XML-файл для данного сайта и сохраняем его на компьютер.

Шаг 2. Выбираем, что именно мы хотим экспортировать, после чего щелкаем по кнопке Download Export File.

Шаг 3. В консоли одиночной версии WordPress (отдельной сборки) переходим в раздел Tools > Import.

Опция WordPress должна быть последней в списке. Если у вас нет до сих пор плагина для импорта, установите его.

install-importer-plugin-popup

Шаг 4. Выбираем сохраненный XML-файл и загружаем его.

Шаг 5. Вы можете определить, надо ли связывать записи с каким-либо пользователем или нет.

Если вам нужно подробное объяснение этого действия, прочтите первый шаг в разделе выше.

Когда вы будете готовы, щелкните по ссылке Submit.

Не забудьте обновить пароли и роли импортированных пользователей.

Также заметьте, что если у вас возникли проблемы с импортом файла, вы всегда можете удалить все импортированные компоненты и затем повторно импортировать файл.

Привязка записей к новому пользователю после импорта

Если вы хотите присвоить записи новому пользователю после импорта, следуйте инструкциям, представленным ниже.

Шаг 1. Переходим в раздел Posts > All Posts.

Щелкаем по имени автора, записи которого вы хотите присвоить другому пользователю.

В данном примере я хочу присвоить записи singleuser пользователю xyz.

click-author-of-posts

Шаг 2. Вы увидите список всех записей, созданных данным автором. Вы можете либо выбрать все записи, щелкнув по ссылке Select All, либо вручную отметить конкретные записи.

select-posts

Шаг 3. В выпадающем меню сверху выбираем Edit и щелкаем по кнопке Apply.

select-edit-apply

Шаг 4. Теперь под столбцом Рубрики вы должны увидеть выпадающий список, в котором можно выбирать автора.

change-author

Выберите автора, который вам подходит, после чего щелкните Update.

Готово. Автор записей будет изменен.

author-changed

Итог

В принципе, мы добились того, чего хотели. Чтобы не запутаться с именами, просто заранее присвойте записи пользователям, уже существующим на сайте. Тогда все пройдет просто и быстро.

Если остались вопросы, пишите в комментариях!

Источник: wpmu.org.

Блог про WordPress
Комментарии: 7
  1. Евгений

    А как его удалить?

    1. Дмитрий (автор)

      В админке суперадминистратора есть ссылка Delete site. Щелчок по ней удаляет требуемые сайты из сети.
      Либо сам админ — владелец блога — может удалить свой сайт/блог.

  2. Волшебник

    При активации мультисайтов, появляется как бы вопрос, какие у сайтов будут адреса:

    1. multi1.domen.ru
    2. domen.ru/multi1/

    Меня интересует такой вопрос: если допустим выбрали второй метод, можно ли потом как-то будет переделать на первый? Т.к. мой хостинг не поддерживает мультидомены, но в будущем возможно я перейду на новый хостинг и организую как мультидомены.

    1. Дмитрий (автор)

      Перемещаться можно как с первого вида адресов на второй, так и со второго на первый. В Кодексе по этому поводу сказано, что нужно будет откорректировать файл .htaccess и задать значение SUBDOMAIN_INSTALL в wp-config.php соответствующим образом.

  3. Евгений

    Полностью сайт я не хочу удалять! Просто мне хотелось установить тему со всеми уже готовыми настройками и файлами, чтобы она выглядела точно также как на демо-версии данной темы, и посмотреть как это всё будет выглядеть на моем сайте, для этого я и имортировал xml-файл который храниться в папке sample-data, это отдельная папка и к установочной теме(zip)не имеет никакого отношения, в ней только готовые настройки темы и дополнительные файлы. Вообщем всё установилось, добавилось новое меню уже полностью настроенное, новые страницы и медиафайлы, посмотрел, полюбовался, и теперь хочу все это удалить и вернуть сайт в прежнее состояние. Можно ли так сделать? Можно ли решить эту проблему удалив например xml файл который я имортировал? Если да, то как? В админке я не нашел таких функций, через FileZile тоже!

  4. Волшебник

    Тогда вам можно удалить все эти дополнительные файлы, удалить все записи, рубрики и т.д. Темы же лучше тестить на локалхосте.

  5. Евгений

    Ну это понятно! Спасибо!

Добавить комментарий для Евгений Отменить ответ

Получать новые комментарии по электронной почте.