Полный гайд по миграции с CMS DLE на WordPress

dle wordpress - Полный гайд по миграции с CMS DLE на WordPress

Данный сайт в апреле 2019 года полностью переехал на CMS WordPress и в июне, после завершения всех правок (а их было не мало) был перенесен в продакшн. До этого он всегда работал на CMS DLE.

Идея переезда грызла меня последние несколько лет. Но все не решался, поскольку смена движка — это всегда большой объем работы по «вылизыванию» последствий переезда.

Причины переезда с DLE на WordPress

На самом деле их более, чем достаточно. Начиная от несовершенства ДЛЕ, заканчивая его платной лицензией. В свое время сотрудники «Softnews Media Group» регулярно атаковали почту хостинг провайдера с требованием заблокировать ресурс.

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

Итого можно выделить несколько ключевых причин переноса движка:

  • На момент переноса уже активно использовал WP в других проектах и смысла использовать два логически похожих движка (статьи связаны по категориям) не было;
  • DLE — платный. Запуск нового проекта себе или третьему лицу потребует дополнительных расходов или бесконечных жалоб хостеру;
  • Расширяемость — плагины, особенность их установки (часто нужно править движок) и многое другое;

Подготовка CMS DLE и CMS WordPress к переезду

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

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

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

Установка WordPress

  1. Делаем бекап базы DLE;
  2. Создаем новую базу данных, загружаем в нее бекап DLE;
  3. Устанавливаем сюда же WordPress (позже таблицы DLE можно будет удалить);
  4. Копируем папку с файлами /uploads/ в корень WP. Таким образом картинки будут подтягиваться по старым адресам, но не будут отображаться в библиотеке WP.

Настройка WordPress перед слиянием баз

Нужно установить два плагина и сделать одну правку бизнес-логики движка WP.

  • Плагин «rus-to-lat». DLE по умолчанию переводит кириллическое название статьи в адрес на латинице. WP из коробки так делать не умеет и будет сохранять кириллицу, что не есть хорошо.
  • Плагин «wp-no-category-base». WP принудительно проставляет директорию /category/ в адрес категорий статей. Данный плагин убирает это слово.
  • Структура ЧПУ. Важно перенести шаблон ЧПУ дабы не потерять позиции в поисковой выдаче. Настраивается в админке в разделе постоянных ссылок.

Стоит подробнее остановиться на последнем пункте с ЧПУ. В админке есть инструкция, запутаться сложно, но все же.

wp permalinks 620x409 - Полный гайд по миграции с CMS DLE на WordPress
Настройка постоянных ссылок — /wp-admin/options-permalink.php

Для ссылки вида «123-article-name.html» шаблон будет следующим: «/%post_id%%postname%.html». Обратите внимание: слеш в данном случае является строковым параметром, а знаки процентов указывают на начало и конец переменных.

Слияние баз данных DLE и WordPress

Процесс представляет из себя перенос значений полей DLE в аналогичные по логике WordPress. Выполняется в виде SQL запроса. Для этого необходимо зайти в PhpMyAdmin, выбрать эту самую базу и на вкладке SQL выполнить следующий запрос.

DELETE FROM `wp_users` WHERE `wp_users`.`ID` != 1;
INSERT INTO wp_users (ID, user_login, user_nicename, user_email, user_registered, display_name) SELECT user_id, name, name, email, FROM_UNIXTIME( reg_date ), name FROM dle_users WHERE user_id != 1;

INSERT INTO wp_usermeta (user_id, meta_key, meta_value) SELECT user_id, "first_name", fullname FROM dle_users;
INSERT INTO wp_usermeta (user_id, meta_key, meta_value) SELECT user_id, "description", info FROM dle_users;
INSERT INTO wp_usermeta (user_id, meta_key, meta_value) SELECT user_id, "admin_color", "fresh" FROM dle_users;
INSERT INTO wp_usermeta (user_id, meta_key, meta_value) SELECT user_id, "show_admin_bar_front", "false" FROM dle_users;
INSERT INTO wp_usermeta (user_id, meta_key, meta_value) SELECT user_id, "wp_capabilities", "a:1:{s:10:\"subscriber\";b:1;}" FROM dle_users;
INSERT INTO wp_usermeta (user_id, meta_key, meta_value) SELECT user_id, "wp_user_level", 0 FROM dle_users;

TRUNCATE `wp_terms`;
INSERT INTO `wp_terms` (`term_id`, `name`, `slug`) SELECT `id`, `name`, `alt_name` FROM `dle_category`;

TRUNCATE `wp_term_taxonomy`;
INSERT INTO `wp_term_taxonomy` (`term_taxonomy_id`, `term_id`, `description`, `parent`) SELECT `id`, `id`, `descr`, `parentid` FROM `dle_category`;
UPDATE `wp_term_taxonomy` SET `taxonomy`='category';

TRUNCATE `wp_term_relationships`;
INSERT INTO wp_term_relationships (object_id, term_taxonomy_id) SELECT id, category FROM dle_post;

TRUNCATE wp_posts;
INSERT INTO wp_posts (id, post_author, post_date, post_content, post_title, post_name) SELECT d_p.id, d_u.user_id, d_p.DATE, d_p.full_story, d_p.title, d_p.alt_name FROM dle_post AS d_p, dle_users AS d_u WHERE d_p.autor = d_u.name;

TRUNCATE `wp_comments`;
INSERT INTO wp_comments (comment_ID,comment_post_ID, comment_author, comment_author_email, comment_date, comment_content) SELECT id, post_id, autor, email, DATE, text FROM dle_comments;

Оригинальные статьи

Проблемы, которые пришлось исправлять

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

Криво переносится следующее

  • Цитаты BLOCKQUOTE сохраняют HTML обертку в редакторе;
  • Блоки типа PRE и CODE не поддаются редактированию вообще. Копировал данный текст с оригинального сайта;
  • Текст под катом SPOILER также остается в виде HTML кода и не разворачивается. Написал собственную альтернативу;
  • Тег NOLEECH, из плагина Dude Smart Leech, скрывающий внешние ссылки также не работает и остается видимым в текстах.

Плагин Folders для редактуры текстов

folders plugin 620x431 - Полный гайд по миграции с CMS DLE на WordPress
Плагин Folders для дополнительной сортировки записей WP

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

Плагин не имеет никакого отношения к логике WP и ведет собственную сортировку.

Плагин Image Zoom для увеличения картинок

Еще одной проблемой оказалось отсутствие плавного увеличения картинок в модальном окне (технология Highslide), как это умеет делать DLE из коробки. Нашел отличное и очень простое решение.

Преимущества WordPress

Во-первый, это задел на будущее. Выше писал, что DLE платный и запуск на нем клиентского продукта потребует внесения в ценник стоимости лицензии ~ 3 тыс. рублей. На такой шаг мало кто готов идти.

Во-вторых, WP в разы превосходит DLE по расширяемости и гибкости. Плагины работают на API, т.е. не вносят правки в движок и весь свой код хранят в собственных папках специального раздела (wp-content/plugins/) их можно безопасно обновлять независимо от движка.

В-третьих, философия шаблонов. Я знаком с PHP и тот факт, что шаблоны используют данный язык мне подходит, как нельзя лучше.  

Еще можно выделить модуль WooCommerce для сборки на WP полноценного магазина и огромное сообщество, где можно найти ответ на самый странный вопрос по функционалу движка.

Читайте также

Похожие записи

Depositfiles — GOLD аккаунты, как это было в 2009 году
Наткнулся на скриншот выше и навеяло воспоминания… На скриншоте программа лояльности от depositfiles в виде бонусных ключей, которые предоставлялись за...
Большие перемены — новый домен devarts.pro и новый курс развития сайта
Реализовал свою давнюю задумку по смене домена сайта-блога artemmian.ru на что-то более звучащее, а заодно и переименоваться в сети на...
Free Trial SSL — как обновить 90-дневный бесплатный сертификат.
Незаметно подошел к концу срок действия бесплатного 90-дневного Free Trial SSL от Comodo, который я оформлял через GogetSSL. Оказалось, что...
Падение и рост ТиЦ применяя принудительный 301 редирект с HTTP на HTTPS
Три месяца назад ушел с HTTP в пользу SSL и HTTPS, ТиЦ был 10 и оказался перед выбором. Оставлять открытым...
Сайт вышел из под АГС, ТиЦ снова равен 10
Сайт вышел из под фильтра АГС, а может даже и Минусинска, после того, как более полугода находился по параметру ТиЦ...

Комментарии

Бесполезно писать спамные сообщения. Все комментарии проверяются;
Можно оставлять ссылки (через <a href), если они несут полезную информацию или дополняют статью;

  1. @Pavlospul пишет:
    19.10.2019 в 13:36

    удалите,пожалуйста! .

    s.h.i.n.amin.sk.2.015@gmail.com

    • @devarts пишет:
      19.10.2019 в 16:53

      Удалить что?

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

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