При переносе (экспорте) записей WordPress на другой сайт штатными средствами возникают определенные сложности. А именно - все переноситься, кроме картинок. Рассмотрим несколько способов как решить эту проблему.
Содержание
Включаем режим обслуживания
Для перевода сайта в режим обслуживания я использую плагин WordPress
Slim Maintenance Mode.
Плагин поддерживает русский язык:
- Почему именно плагин Slim Maintenance Mode:
- маленький, простой, легкий;
- никаких настроек - просто активируйте плагин и только администраторы будут видеть сайт;
- работает с любой темой WordPress;
- хорошо поддерживается популярными плагинами кеширования Super Cache и WP Rocket;
- 503 ответ HTTP-заголовка "Сервис недоступен" (особенно актуально для поисковых систем).
Штатные средства переноса (не работает)
Казалось бы все очень просто - в ядре WordPress существует встроенная возможность экспорта/импорта записей.
Но к сожалению должным образом эта функция не работает. Да, записи перенеслись, скопировались title и description к каждой записи, перенеслись даже комментарии. А вот медиафайлы не перенеслись (несмотря на галочку в пункте "Скачать и импортировать файлы вложений") - картинки по прежнему ссылаются на старый хостинг (домен), не подхватились Изображения записи (миниатюры).
Но мы, как всегда, нашли решение этой проблемы.
Плагин Export media with selected content
Для исправления этого нашелся плагин Export media with selected content, который устраняет эту недоработку.
После установки плагина в настройках экспорта появляется строчка Export media with selected content, где нужно поставить галочку.
Еще один плагин, который помогает решить данную проблему DeMomentSomTres WordPress Export Posts With Images.
Это создаст новую опцию экспорта, аналогичную графическому интерфейсу экспорта WordPress по умолчанию, но с расширенными функциями, так что при импорте этого XML-файла ваши медиа будут импортированы (с сервера по умолчанию на ваш локальный сервер). Вам не нужно устанавливать его в WordPress, где вы импортируете медиа, его просто нужно установить на сервер экспорта WordPress.
Экспорт записей WordPress
- В админке WordPress идем в раздел Инструменты/Экспорт.
- Выбрать отдельную запись для переноса нельзя, только все рубрики, отдельно выбранную рубрику или записи за определенное время (с точностью месяц).
- Ставим галочку в поле "Export media with selected content".
- Нажимаем кнопку Скачать файл экспорта и создаем файл с расширением xml для переноса.
Импорт записей WordPress
- На сайте, куда переносим записи, в Инструменты/Импорт открываем файл созданный пунктом выше. Предварительно требуется установить плагин WordPress Importer, ссылка на который есть в разделе Импорт.
- Выбираем автора который будет соответствовать автору статей старого сайта.
- Ставим галочку "Скачать и импортировать файлы вложений".
- В результате:
- Записи перенеслись с Title, Description и даже комментариями.
- Картинки (медиафайлы) перенеслись и прикрепились к соответствующим записям.
- Миниатюры (изображения записи) перенеслись и прикрепились к соответствующим записям.
- Таблицы TablePress перенеслись номер в номер (даже если есть разрывы в нумерации).
Но как всегда есть нюансы::
При экспорте не виден раздел, если там есть только черновики - такой раздел просто не отображается и соответственно его нельзя выделить для переноса. Решение - опубликуйте хоть одну статью из такого раздела. Если в описаниях рубрики есть рисунки - они не перенесутся (будет просто пустое место). Если в комментариях есть рисунки - они останутся ссылаться на старый сайт. Приходится править руками (хотя сами картинки успешно перенесутся, надо только подправить путь). Если в таблицах TablePress есть рисунки - они останутся ссылаться на старый сайт. Приходится править руками (хотя сами картинки успешно перенесутся, надо только подправить путь). Если импортировать таблицы TablePress из еще одного источника, им будут присвоены первые свободные номера, а не как в исходнике. В результате путаница - приходится править руками. Сам перенос нестабилен - иногда без проблем переносится 700 записей, иногда затыкается и на 100 записях (скорее всего зависит от текущей нагрузки хостинга).
Совместная работа с плагином Auto Upload Images
Не используйте одновременно плагины Export media with selected content и Auto Upload Images, иначе будут дубли картинок в медиабиблиотеке (одни загруженные для этой записи, другие - неприкрепленные).
Плагин Auto Upload Images (активных установок: 20 000+) перенесет медиафайлы с внешнего источника к вам в библиотеку файлов и подправит URL, как при экспорте, так и когда вы просто перетягиваете чужую картинку к себе в визуальном редакторе.
Настройки по умолчанию будут работать для большинства пользователей, но вы можете изменить их при необходимости (например подправить максимальный размер картинки).
- Картинки перенеслись и прикрепились к записям, в которых они находятся.
Но, миниатюры не перенеслись и не прикрепились к своим записям.
Плагин автоматически импортирует изображение из внешней ссылки в ваши медиа-файлы как только вы нажмете кнопку "Обновить" при редактировании поста. При этом изображению будет установлена текущая дата.
- Если у вас много контента, этот процесс может быть утомительным. К счастью, есть быстрый способ обновить все сообщения внешними изображениями:
- Перейдите на страницу Сообщения «Все сообщения» и нажмите кнопку «Параметры экрана» вверху. Вам нужно увеличить число до 999 в поле «Количество элементов на страницу» и нажать кнопку «Применить»
- Выберите все ваши сообщения и затем «Редактировать» в меню массовых действий.
- После этого вам нужно нажать кнопку «Применить» - WordPress покажет вам окно быстрого редактирования со всеми выбранными сообщениями. Далее просто нажмите на кнопку «Обновить», и WordPress обновит все ваши сообщения.
- Аналоги:
- QQWorld Auto Save Images (активных установок: 60 000+)
единственный из рассмотренных плагинов, который одинаковые изображения загружает под разными именами.
Доработка статей после переноса
Если на старом сайте использовалась другая тема WordPress - "поплывут" шорткоды блоков внимания (и возможно другие элементы оформления). В этом случае поможет плагин поиска и замены контента Better Search Replace. Перед использованием не забываем сделать резервную копию БД.
Для замены текста в записях выбираем таблицу wp_posts.