Как перенести сайт с Joomla на Wordpress — 6 шагов

Перенос действующего сайта с Joomla 1.5 на WordPress, с полной миграцией всех материалов.

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

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

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

Итак, приступим.

Шаг 1. Делаем резервные копии.

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

Шаг 2. Устанавливаем WordPress и плагин импорта.

Устанавливаем WordPress на домен или поддомен, на который будем переносить контент. И устанавливаем плагин FG Joomla to WordPress. Он сделает основную часть работы и разложит всё по полочкам.

Единственный минус этого плагина, в бесплатной версии, что он не работает с материалами, созданными с помощью компонента K2 в Joomla. А именно с ними мне и предстояло работать. Но это не беда, парочка запросов SQL нам помогут с этим справиться))

Шаг 3. Подготовка базы к экспорту.

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

Заходим в PHP My Admin нашей базы-донора и переносим категории и статьи компонента K2 в категории и статьи, созданные с помощью стандартных инструментов Joomla.

Вставляем эту строку в окно выполнения запроса SQL к нашей базе. Во всех местах «dbprefix» нужно заменить на префикс таблиц вашей базы.

INSERT INTO dbprefix_categories (title,alias,parent_id,published,access,extension) SELECT name,alias,parent,published,access, 'com_content' FROM dbprefix_k2_categories

Выглядит это вот так

Перенос категорий K2

После этого в том же окне вставляем следующий запрос

INSERT INTO `yourDBname`.`dbprefix_content` (`id`, `title`, `alias`, `catid`, `introtext`, `fulltext`, `created`, `created_by`, `created_by_alias`, `checked_out`, `checked_out_time`, `modified`, `modified_by`, `publish_up`, `publish_down`, `access`, `featured`, `hits`, `language`) SELECT `id`, `title`, `alias`, `catid`, `introtext`, `fulltext`, `created`, `created_by`, `created_by_alias`, `checked_out`, `checked_out_time`, `modified`, `modified_by`, `publish_up`, `publish_down`, `access`, `featured`, `hits`, `language` FROM `yourDBname`.`dbprefix_k2_items`

Здесь нужно заменить не только префикс таблиц но и имя базы данных «yourDBname». Жмём «Вперёд» и все наши статьи из компонента K2 перекочевали в основную базу статей Joomla.

Перенос статей из компонента K2 в основную базу Joomla

Шаг 4. Настройка плагина для импорта.

Настраиваем плагин FG Joomla to WordPress

Настраиваем плагин FG Joomla to WordPress

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

Настройка плагина FG Joomla to WordPress

Если сайт, куда переносим чистый, как в моём случае, то очищать его от контента WordPress не нужно. Если такая необходимость есть, то можно воспользоваться кнопкой «Empty WordPress content». Осторожно с этой кнопкой, будут удалены все записи, рубрики и метки WordPress без возможности их восстановления.

«Automatically remove all the WordPress content before each import» (Автоматически удалять весь контент Вордпресс перед каждым импортом) — я не пользовался этой опцией, так как не было необходимости каждый раз чистить базу.

И «URL of the live Joomla web site» — здесь нужно вписать адрес сайта с которого плагин будет всё парсить.

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

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

Заполняем все поля формы соединения с базой данных

  • Hostname — указываем адрес хоста
  • Port — устанавливаем номер порта
  • Database — указываем название базы данных
  • Username — указываем имя пользователя базы данных
  • Password — пароль к базе данных
  • Joomla Table Prefix — префикс таблиц базы данных

Нажимаем на кнопку «Test the database connection» и, если всё заполнено верно, появится зелёная надпись об успешном соединении с базой.

Если, появляется ошибка, проверяем всё ли мы указали верно. Посмотреть все эти данные можно в панели управления базами данных вашего хостинга.

Данные для подключения к базе данных перенос с Joomla

Приступаем к настройкам непосредственно импорта статей в WordPress. Здесь определяется что и как мы будем парсить.

У меня настройки выглядят следующим образом

Настройки импорта материалов из Joomla в WordPress

Теперь подробнее о каждой отмеченной опции

  • Import introtext: to excerpt — Импортируем вступительный текст в «Отрывок» WordPress
  • Archived posts: Not imported — не импортируем архивы материалов
  • Remove the first image from the content when it is used as the featured image — Убираем первое изображение, если оно используется как изображение записи. Зачем нам дублировать картинки.
  • Import media with duplicate names — Импортируем изображения с дублирующимися именами. Пробовал импортировать без этой опции и у меня получалось что одна картинка мелькала в нескольких постах. Контент-менеджер проекта не особо заморачивался с именами файлов и загружал почти к каждому посту файлы с именами «1.jpg» и так далее. Чтобы не столкнуться с такой ситуацией, ставим галочку.
  • Timeout for each media: 5 seconds — пробовал менять этот параметр в меньшую сторону, особого эффекта не увидел.

Какие ещё возможности есть

  • Import only the featured images. Don’t import the other images — Импортировать только изображения записи, остальные игнорировать. Имеет смысл, если в теле статей нет никаких изображений или они не нужны.
  • Remove accents from file names — убирать акценты из имён файлов.
  • Import external media — импортировать файлы со сторонних источников. Это нужно, если медиа отображаются с других сайтов и не хранятся на хостинге донора.
  • Force media import. Keep unchecked except if you had previously some media download issues. — Типа ускоренная загрузка изображений. Пробовал отмечать эту опцию, особой прибавки в скорости не обнаружил.
  • Import meta keywords as tags — импортировать ключевые слова как тэги. Если планируется использование тэгов в WordPress, то можно отметить. Однако не факт, что ключи прописывались верно и можно в результате получить один набор тэгов для всех материалов))
  • Import as pages instead of blog posts (without categories) — импортировать страницы как посты без категорий.

Шаг 5. Запуск процесса импорта.

Вот мы и закончили с настройками. Теперь жмём на кнопку «Start\Resume the Import».

Запускаем импорт материалов в WordPress

В самой верхней части страница плагина вы сможете наблюдать как начнёт тикать счётчик импорта статей.

У меня было так, что счётчик «замирал» через каждые 5-7 минут. Приходилось нажимать «Stop» и снова «Start» и процесс возобновлялся. Мне кажется это связано с ограничением использования памяти для одного процесса, но лезть и разбираться в этом уже желания не было. Если кто знает, напишите решение в комментариях.

После того как все материалы были импортированы нужно нажать на кнопку «Modify internal links»

Изменяем внутренние ссылки после импорта

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

Шаг 6. Завершение.

Проверяем в админке все статьи. Все ли импортировались файлы и прочее.

Заметил одну особенность, плагин импортирует их со статусом «Черновик» и если их массово опубликовать в админке, получится что все они созданы в одно время.

Меня такая ситуация в корне не устраивала и пришлось ещё раз идти в базы данных. Но на этот раз уже в базу нашего нового сайта.

Важно! Перед следующей операцией обязательно сделайте резервную копию новой базы данных!

Обновляем статус наших постов в базе данных WordPress следующим SQL запросом.

UPDATE wp_posts SET post_status = ‘publish’ WHERE (post_type = ‘post’ and post_status = ‘draft’)

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

В итоге у меня получился довольно неплохой сайт, оформил его темой Colormag от ThemeGrill. Ниже скрины до и после.

Сайт на Joomla до переезда

Сайт на Joomla до переезда

Сайт на WordPress после переезда

Сайт на WordPress после импорта материалов

Часто задаваемые вопросы

По данному руководству вы не потратите денег на покупку плагинов. Всё делается абсолютно бесплатно.

Да, статьи будут перенесены на новый домен вместе с изображениями.

Для тех, кто делает это впервые, перенос статей займёт около часа. Для уже более опытных web-мастеров — около 30 минут.

Загрузить больше

Кулешов ЕвгенийМои статьи

Привет! Меня зовут Евгений. Я WEB-разработчик, SEO-специалист и интернет-маркетолог с опытом работы более 5 лет. Занимаюсь созданием сайтов в Астане и Алматы. Хочешь развивать свой бизнес в Internet? Нужны клиенты? Нужен трафик? Я знаю как дать тебе это. Напиши в комментариях свой вопрос!

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