WordPress multisite

Опубликовано: 01.09.2018

видео WordPress multisite

How To Setup WordPress Multisite And Make Money!

В интернете полно статей, которые описывают процедуру переноса блоги из multisite в отдельный WordPress.

В этой статье я опишу, как можно перенести блог/подсайт из одной инсталляции WordPress multisite в другую.



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

Процесс включает в себя слудующие этапы:

Перенос библиотеки медиафайлов Перенос записей, страниц, черновиков, меню Перенос виджетов Перенос содержимого библиотек плагинов (NextGen library, Revolution Slider, Photo albums, и т.д.) Применение параметров и настроек.

Сам процесс занимает от часа до двух.


WordPress Multisite - Install Your WordPress Multiste Network In Under 20 Minutes

Для упрощения текста, я буду рассматривать перенос контента сайта из старого mulstisite- A в новый multisite- B. При этом multisite- B должен иметь установленным тот же набор плагинов, что существуют в mulstisite- A

Для дальнейшей работы нам понадобятся так же следующие плагины:


Como criar uma Rede Multisites no WordPress - Tutorial Completissimo

Установите их перед началом работы в обе инсталяции mulstisite- A и multisite- B.

1. Подготовительный этап:

Перед началом выполнения любых действий обязательно сделайте резервные копии обоих сайтов и их баз данных.

Теперь можно шаманить.

Зайдите в админку multisite- B и создайте новый сайт. Включение пользователей и плагинов - опционально.

Дальше нужно определить id сайта в инсталяциях mulstisite- A и multisite- B.

От значения id сайта зависит месторасположение папки uploads, префикса таблиц в базе, а так же хранилище файлов плагинов. Плагины я рассматривать не буду.

Узнать id быстрее всего можно из адрессной строки брайзера. Открываем страницу редактирования сайта. Обращаем внимаение на адресную строку браузера именно в ней отображается id сайта. Оно нам будет нужно в дальнейшем.

В моем случае id нового сайта multisite- B равняется 39 . Таким же образом определяем id сайта в mulstisite- A. В моем случае - 10 .

2. Перенос темы

Самый й простой шаг. Смотрим в настройках сайта включеную тему, берем папку темы из mulstisite- A (wp-contents/themes/ имя_темы ) и переносим в новый mulstisite- B. Убедитесь, что тема не является дочерней.

Для этого откройте файл styles.css и посмотрите нету ли там импорта файла стилей из другой темы:

@import url("../ имя_темы /style.css")

После этого переходим на страницу настройк сайта в админке mulstisite- B. На вкладке "темы" находим нужноу и включаем ее для нового сайта.

3. Перенос библиотеки медиафайлов

Этот этап немного с подковыркой. Форумы WordPress пестрят записями о проблемах с библиотекой мультимедия после переноса сайта на новый сервер. По факту у людей пусто в админке там, где должен быть списов всех когда-либо загруженных картинок, документов и т.д.

Знатоки предлагают искать спасения в одном из следующих плагинов:

Я их опробывал и удачно поломал всю медиабиблиотеку. Хоршо хоть на своем сайте, а не на сайте кого-то из клиентов. Дело в том, что файлы в папке uploads размещеются в соответсвии с днем загрузки. Так файл загруженый 10-го Сентября 2015 года будет лежать в следующей папке:

wp-content/uploads/2015/09/10/имя_файла.jpg

Каждый из этих плагинов просканирует предоставленную ему папку и разложит файлы в uploads в соотвествии с датой создания файла. Очень хорошо, если вы не редактировали, не копировали файлы из папки uploads . В противном случае расположение многих файлов может измениться и на страницах ваших сайтов появятся артефакты, символизирующие отсутвие файла в нужном месте. В простонародье - "битые ссылки".

Что бы такого не произошло - мы будем зрить в корень, брать быка за рога и тянуть за хвост в длинный ящик.

Для успешного переноса и импорта библиотеки мультимедиа (medialibrary) лучше всего скопировать файлы руками, а сведения о содержимом медиабиблиотеки скопировать mysql запросом.

Краткая справка :

WordPress хранит очень много информации в таблице wp_posts. Из названия можно понять, что там хранятся записи. Можно предположить, что там же стоит искать и страницы сайта.

Возможно для Вас будет сюрпризом, но там же хранится информацию о загруженных файлах.

В папке сайта mulstisite- A нужно перейти в каталог загрузок интересующего нас подсайта. Точное местонахождение может отличаться в зависимости от настроек сайта, но найти его несложно, поскольку он содержит id сайта в названии. В моем случае это был:

wp-content/uploads/sites/ 10

Придерживайтесь того же самого принципа при поиске папки uploads в mulstisite- B. В моем случае это был:

wp-content/uploads/sites/ 39

Скопируйте все файлы и папки из одного сайта в другой.

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

Теперь дело за mysql. Я предполагаю, что вы знаете префикс таблиц базы Ваших сайтов. По умолчанию это wp_. В случае с мультисайтом следом за системным префиксом таблиц идет id сайта, который мы знаем. В моем случае все таблицы в базе, связанные с исходным сайтом имели префикс wp_39_. Все таблицы нового сайта имели префикс wp_10_.

Хорошо, если базы сайтов находятся на одном сервере. Если же это не так - сделайте дамп таблицы posts на исходном сервере и разверните его в пустую базу на новом сервере. Дамп/слепок таблицы можно сделать так:

mysqldump -u'root' -p имя_базы wp_39_posts > имя_базы -wp_39_posts.sql

После того, как обе теплицы будут в соседних базах, подключитесь к консоли mysql от имени пользователя, который имеет права работать с обоими базами и выполните следующие запросы:

insert ignore into имя_базы .wp_39_posts SELECT * FROM имя_старой/временной_базы .wp_10_posts where post_type = 'attachment';

insert ignore into имя_базы .wp_39_postmeta SELECT * FROM имя_старой/временной_базы .wp_10_postmeta where meta_key = '_wp_attached_file';

insert ignore into имя_базы .wp_39_postmeta SELECT * FROM имя_старой/временной_базы .wp_10_postmeta where meta_key = '_wp_attachment_metadata';

Естественно замените имена баз и префиксы на свои значения.

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

На этом с медиафайлами закончили.

4. Перенос записей, страниц, черновиков, меню

Вот казалось бы: "Почему бы не перенести всё из таблицы posts в новую базу и не морочить голову?". При таком подходе я потерял менюшки и категории статей, но они прекрасно переносятся стандартным инструментом импорта/экспорта в WordPress. Находится он в админке в меню Инструменты/Tools.

Убедитесь, что Вы находитесь в админках именно того подсайта, с которым работаете. Не вздумайте экспортировать всё из исходного сайта и импортировать эти данные в корень мультисайта B.

Экспортируем все из сайта в mulstisite- А и импортируем в новый сайт (mulstisite- B).

Проставлять следующую галку не нужно. Папку загрузок мы уже скопировали:

Ждем завершения импорта, которое должно ознаменоваться следующим сообщением:

All done. Have fun!

Все сообщение в следующем стиле можно игнорировать:

Failed to import Media

После этого все Ваши записи и страницы будут доступны в соответствующих разделах админки подсайта.

Странная штука этот инструмент экспорта/импорта. Он теряет все элементы iframe. Хорошо, если их нету на страницах Вашего сайта. Если же есть - проверьте все страницы внимательно. Для этого я открывал xml файл импорта в текстовом редакторе и искал слово iframe. Каждый элемент этого файла содержит id записи и тип. Стоит обращать внимание на записи типа post и page. Все черновики (draft) и ревизии (revision) можно игнорировать.

Как Вы понимаете, в связи со меной ID сайта все картинки и прочие файлы имеют нерабочие ссылки. Для того, что бы все починить воспользуемся плагином Velvet Blues Update URLs . Он поможет поменять старые URL'ы на новые.

Нахидм его в Инструментах/Tools:

Думаю не нужно объяснять что куда вводить. В результате выполнения оно скажет:

5. Перенос виджетов

Для переноса виджетов воспользуемся плагином "Widget Importer & Exporter". Он находится в списке инструментов в админке. Ниже стандартного экспортера:

Экспортируем виджеты из исходного сайта. Он предложит сохранить файл с расширением "wie". Соглашаемся.

Ваши виджеты опять же могут содержать картинки со старыми ссылками. К сожалению 'Velvet Blues' не может их обработать. Я пробовал реками обновить ссылки в базе данных, но в результате потерял все виджеты. В причине я разбираться не стал, а просто вернул все как было.

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

В файле все специальные ссылки будут "забэкслэшэны", то есть будут иметь перед собой символ "\" (back-slash). Back-Slash также является специальным, поэтому есть вариант, что вам понадобится продублировать каждый символ "\" в поле поиска и замены. Опять же зависит от редактора и режима поиска-замены.

Дальше в новом сайте нужно включить все плагины, в соответствии со старым. Удостоверьтесь, что в админке самого подсайта все нужные плагины включены.

Как только все изменения сделаны, можете смело импортировать wie файл в новый подсайт.

6. Перенос содержимого библиотек плагинов (NextGen library, Revolution Slider, Photo albums, и т.д.)

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

Отпишите в комментариях, с какими проблемами Вы столкнулись и я рассмотрю и подскажу как с этим бороться (по мере возможности)

7. Применение параметров и настроек.

Завершающим этапом является применение параметров сайта.

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

Также сверяем "Настройки":

Общие (General) Чтение (Reading) Постоянные ссылки (Permalinks)

Эпилог

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

Если вы столкнулись с какой-либо проблемой в ходе работы - оставьте комментарий с детальным описанием проблемы и я ее рассмотрю.

(Visited 1 295 times, 1 visits today)

rss