Главная / Создание и продвижение сайтов / САЙТОСТРОЕНИЕ / WordPress / Экспорт и импорт WordPress штатными средствами CMS

Экспорт и импорт WordPress штатными средствами CMS

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

Не так давно я рассказывал о том, что после некоторых раздумий все-таки объединил два блога (основной и на поддомене) в один. С того времени прошло уже больше месяца, трафик, идущий на перенесенные статьи не пропал. Поэтому могу рекомендовать этот шаг тем, кто устал вести несколько личных блогов разных тематик одновременно, объединив все статьи «под общей крышей» единственного блога с продуманной структурой, а также тем, у кого один или несколько блогов находятся уже долгое время под фильтрами Яндекса и Гугла, занимая место на хостинге, но не получая трафика.

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

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

Как сделать перенос записей WordPress

1. Экспортируем данные из сайта-источника

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

Встроенными в движок средствами можно сделать выгрузку содержимого с различными настройками. Для этого в консоли WordPress того блога, из которого вы хотите перенести статьи, необходимо перейти в меню Инструменты — Экспорт.

Экспорт WordPress из консоли

Как видим, при экспорте можно задействовать, как минимум, 3 варианта: экспортировать записи, экспортировать страницы, экспортировать все содержимое. Рекомендую использовать последний вариант, при котором в WordPress выгрузит в XML-файл все страницы, записи, комментарии к ним, а также все рубрики и метки.

Если же вам необходимо перенести только записи, можно выбрать соответствующий пункт и настроить фильтры: есть возможность сделать выгрузку записей по отдельной категории, автору, времени публикации и статусу (например, выбрать только все опубликованные записи).

Экспорт записей WordPress по фильтру

То же, с небольшими поправками, относится и к страницам. Здесь присутствуют все те же фильтры, кроме рубрик.

Экспорт страниц WordPress по фильтру

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

Сохранение файла импорта

2. Загружаем данные на сайт-получатель

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

Следующий шаг, который также рекомендую сделать перед тем как будет запущен импорт из XML-файла — отключить на время импорта все работающие плагины. Иногда плагины WordPress конфликтуют друг с другом, и заранее предугадать, с каким из включенных на блоге плагинов может возникнуть конфликт с плагином импорта, вряд ли возможно. Тем более, что плагин из официального репозитория, которым мы будем пользоваться, достаточно долго не обновлялся.

Доступ к функции импортирования данных находится там же, в консоли WordPress: Инструменты — Импорт. Только все последующие действия выполняются уже из консоли принимающего сайта (блога), в который осуществляется перенос.

Меню импорта WordPress

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

Плагин импорта WordPress - установка

В открывшемся окне подтверждаем установку плагина импорта WordPress, затем активируем плагин. Вновь переходим к меню консоли Инструменты — Импорт и еще раз нажимаем на ссылку WordPress. Затем нажатием на кнопку Обзор показываем путь к ранее сохраненному файлу импорта на своем компьютере и нажимаем кнопку Загрузить и импортировать файл.

Импорт из XML-файла

Бывает, что при нажатии этой кнопки в браузере слетает кодировка и кириллица перестает отображаться корректно, при этом на вновь открывшейся странице прочесть текст не представляется возможным:

Неправильная кодировка страницы

В таком случае достаточно зайти в меню своего браузера Вид — Кодировка текста и выбрать Юникод.

На открывшейся странице можем выбрать вариант переноса авторов статей (они же — пользователи в консоли WordPress) из предложенных:

  • перенести авторов (пользователей) «как есть»;
  • создать новых пользователей (можно задать имя каждому);
  • привязать переносимые статьи к любому из имеющихся пользователей.

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

Экспорт WordPress

Нажатие кнопки Отправить запускает процесс, иногда сопровождаемый сообщениями, подобными представленным на скриншоте ниже:

Ошибки при импорте

Приведенный выше скриншот показывает неудачный импорт нескольких галерей изображений, созданных используемым на исходном блоге плагином NextGen Gallery. Проблема довольно быстро была решена копированием файлов галерей на блог вручную, пересозданием миниатюр к ним и прописыванием новых ID галерей в постах. Выводимые движком сообщения в каждом конкретном случае будут различаться, поскольку конфигурации (версия WordPress, установленная тема, подключенные шаблоны) у всех разные.

Настройка редиректа (перенаправления)

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

В случае полного переноса всех статей с Блога-1 в Блог-2 в файл .htcacces пишем инструкцию для 301-го редиректа:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.blog-1\.ru$ [NC]
RewriteRule ^(.*)$ http://blog-2.ru/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^blog-1\.ru$ [NC]
RewriteRule ^(.*)$ http://blog-2.ru/$1 [L,R=301]

Файл .htcacces с таким содержанием и вписанными в него настоящими доменными именами ваших блогов должен находиться в корне Блога-1, из которого вы перенесли статьи. Теперь поисковые системы будут знать о том, что адреса статей изменились, а пользователи, приходящие из поиска, будут попадать сразу на Блог-2 (получатель контента).

После всех описанных выше действий при попытке открыть на старом блоге (Блог-1) любую статью из анонса будет идти перенаправление на новое местоположение статьи. Но, по факту, все содержимое старого блога со всеми картинками, видеозаписями и комментариями, осталось на месте. Его можно будет удалить через какое-то время, дабы не занимать лишнее место на хостинге. На случай, если через день-другой возникнет желание быстро откатить все сделанные изменения, достаточно будет на Блоге-1 убрать вписанные в файл .htcacces строки с указанием редиректа, а Блог-2 восстановить из сделанной заблаговременно резервной копии.

Дальнейшие действия

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

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

Остается лишь добавить, что перенос статей из одного блога на WordPress в другой — не такая уж и сложная процедура, как может показаться при чтении этой статьи. Всё у вас должно получиться с первого раза. Главное, не забывайте о предварительном резервном копировании блога-получателя.

Расскажите об этой статье в соцсетях:

32 комментария

  1. Александр Каратаев

    Приветствую, Константин! Экспортом и импортом, про которые ты рассказал, пользуюсь очень давно. И переезжал несколько раз, и на денвер периодически таким способом заливал всё. Это действительно очень удобный способ.
    Да, кстати, иногда кракозябры появлялись, но теперь я во все .htaccess вервой строкой вставляю: AddDefaultCharset utf-8 и проблемы такой не возникает.
    А то, что импортёр не обновлялся, так может и нужды не было? Структура импортируемых данных видимо не менялась.
    Кроме того, я бы порекомендовал всё-же делать ежедневный бекап контента. Использую для этого плагин BackWPup. Ежедневно контент, еженедельно всё полностью, включая дамп базы. Это, конечно, немножко из другой оперы, но кто-то может понадеяться, что используя экспорт/импорт обезопасит себя от неожиданностей.

    • Александр, спасибо за дополнение насчет принудительного выставления кодировки в .htaccess. То, что плагин импорта не обновлялся, не страшно, импорт ведь работает — это главное. Ежедневный бэкап — нужное решение, но у меня все бэкапы делаются на хостинге. За несколько последних дней всегда есть точки отката и возможность восстановиться. Понимаю, что правильнее взять это в свои руки, поэтому скорее всего установлю рекомендуемый тобой BackWPup. Про бэкап несколько раз написал для тех, кто делает его редко или не делает вовсе.

      • Александр Каратаев

        Насколько я знаю — хостеры делают бекап раз в неделю. Хотя может быть на разных хостингах это по-разному. Но у меня как-то давно был момент, что блог слетел, своих бекапов я тогда не делал, а на хостинге, как назло тоже какие-то проблемы были. В результате потерян труд технической корректировки блога, статья и все комменты к ней…
        Очень неприятная ситуация…

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

  2. Полезная информация. Пока этим не занимался. Но все в жизни может пригодиться.

    • Это самый быстрый способ импортирования всей информации с одного сайта на другой.

  3. С переносом базы еще не сталкивался, надеюсь, что и не придется. Но даже если и придется, с такой подробной пошаговой инструкцией, проблем возникнуть не должно! Спасибо за труд.

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

  4. Валентина

    Константин, на скриншоте плагина импорта написано, что плагин не был протестирован с вашей версией wordpress. Я почему-то не решаюсь обновлять плагины, когда есть такое предупреждение, потому что бывает у меня после обновления на сайте что-нибудь перестаёт работать. Или на это не стоит обращать внимание и смело можно обновлять? А проблема в сбоях в другом?

    • Да, плагин импорта не обновлялся 1 год (поэтому обновить его не удастся, пока не выйдет официальное обновление) и не тестировался с последними версиями Вордпресс, но ссылка на него из админки присутствует, так что все в порядке. Проверял его в работе не раз, импортирует данные исправно. А по поводу обновлений уже установленных плагинов — сам без необходимости, пока система работает, стараюсь ничего не обновлять.

  5. Константин, доброго Вам вечера! Прочитал статью и хочу сказать: Вы на «ты» (как бы каламбурно это ни звучало) с WordPres. Это просто здорово. О подобной функции на своем движке даже не задумывался. Теперь знаю)

    У меня настроено автоматическое создание резервной копии базы данных. Она каждый день приходит ко мне на почту. Так работают настройки на моем хостинге.

    Вообще, бэкапы базы и системных файлов — это просто спасение. Я это могу сказать на собственном опыте. За последние полтора месяца мне пришлось трижды восстанавливать свой сайт. В каждом случае есть моя доля вины. И только благодаря наличию резервной копии (а сохранение базы через фнукцию «Экспорт» тоже можно считать резервной копией, сделанной вручную) я не просто за полчаса-час вернул сайт к жизни, но вернул его к состоянию, когда у него не было никаких проблем.

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

      • Сейчас специально посмотрел: бэкап базы имеет расширение *.sql. Константин, я правильно понимаю, что XML-формат отличается от SQL-формата тем (главным образом?), что не сохраняет пути к картинкам?

        Заранее прошу прощения, если вопрос задан некорректно. Я только-только начал углубляться в базы данных)

        • Сергей, пути к картинкам в XML-файле экспорта присутствуют, при импорте картинки становятся куда следует. Но дело не в расширении. XML не является форматом базы данных сайта, поэтому при резервном копировании и для восстановления сайтов его не используют.

          • Константин, а конвертировать файл формат XML в файл формата SQL возможно?

            • XML можно конвертировать десятка в полтора форматов, для этого есть даже программы типа Advanced XML Converter. Но гарантий, что конвертация получится корректной, никто не даст.

  6. Вот у меня как раз и слетела кодировка, а весь текст превратился непонятно во что. Минут десять паниковала, прежде чем вспомнила, что когда-то уже сталкивалась с такой ситуацией и стала искать Юникод. Разобралась потом. Но шок сначала был сильный, показалось — это навсегда:)

    • Да, пока параллельно существует несколько стандартов отображения кириллицы, такая проблема всплывать иногда будет.

  7. Андрей Шадрин

    Импорт и экспорт очень отличная штука. Особенно когда нужно что-то массово перенести, не только в wordpresse меня это выручало.

    • Согласен, перенос любых данных с помощью инструментов экспорта/импорта экономит время.

  8. Александр

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

    • Александр, плагин бэкапа — немного для другой задачи. Резервное копирование данных — нужная вещь. Но плагин импорта WordPress Importer необходим для максимально удобного переноса материалов сайта с одного домена на другой. Причем, импортировать статьи можно уже на работающий сайт.

  9. Ни разу не приходилось пользоваться данной функцией. Хотя она, несомненно, является крайне полезной.

    • Да, эта функция Вордпресс здорово выручает, когда статей не один-другой десяток, а больше сотни.

  10. Ирина и Игорь

    Спасибо за ценную информацию. Пока с переносом не сталкивались, но теперь готовы к любому повороту событий.

  11. екатерина

    Подробно и все понятно. Ни разу не приходилось пользоваться, но все время в консоли наблюдаю слова импорт/экспорт — все думаю зачем и к чему это. Теперь ясно.
    Константин, может не в тему, но есть ли у вас на блоге (если есть — сориентируйте) или может быть вы собираетесь в ближайшее время написать что-то по следующей теме. например, проверив скорость загрузки сайта ворд пресс на гугл у меня выдал 40/100, а надо хотя бы 98/100. Причина такой плохой загрузки: необходимо удалить код JavaScript и CSS, блокирующий отображение верхней части страницы. Что это, о чем и как сделать — вопрос). Думаю, он мучает не меня одну, поскольку медленная загрузка сайта, особенно на мобильных устройствах, это «не есть хорошо» для блогера) Спасибо

    • Екатерина, в большинстве случаев скорость загрузки сайта может быть неудовлетворительной по двум причинам:

      1) Медленный хостинг. На предыдущем моем хостинге скорость загрузки сайта была в несколько раз ниже.
      2) Тормозящие плагины, порой для этого достаточно одного плагина.

      Как проверить скорость загрузки плагинов, есть статья. Посмотрите, возможно, поможет.

  12. Мне понравилось как вы объясняете. Буду читать дальше. Информация о работе с блогом всегда интересна. Спасибо!

  13. Подскажите как в xml файле заменить первью картинку поста.

    Я допёр что нужно поменять thumbnail_id . Но вот как получить этот thumbnail_id если картинка загружена по фтп?

    • По XML-файлу не подскажу, не разбирал его, не было надобности — все картинки вместе с превьюшками подтягивались каждый раз при экспорте. В файл импорта при указанных в статье настройках вписываются все изображения, что есть на исходном сайте, соответственно, экспорт получается полным. Т.е., не обязательно заливать изображения вручную через FTP, плагин сам прекрасно с этим справляется.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *