Статьи

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

как перенести сайт с Joomla на Wordpress

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

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

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

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

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

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

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

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

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

Устанавливаем 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 после переезда

author-avatar

Об авторе Кулешов Евгений

WEB-разработчик, SEO-специалист и интернет-маркетолог с опытом работы более 5 лет. С 2021 года "Серебряный эксперт" в Центр Google Поиска.

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

Ваш адрес email не будет опубликован.