Инструкции по переносу DLE на WordPress
Инструкции по переносу DLE на WordPress
1. Для начало нам нужно сделать бекап базы данных и файлов сайта, чтобы смело перейти к работе.
2. Теперь нам нужно удалить все файлы DLE из хостинга (кроме папки uploads).
3. Скачиваем последнюю версию WordPress и устанавливаем на том же домене, на том же базе данных.
4. Для начало нам нужно перенести пользователей, но тут есть одно примечание: пользователь с ID=1, то-есть, Админ не переносится и еще не переносятся пароли (тут всем придется просто восстановить пароли).
Для этого просто нужно из 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;
Примечание: Все запросы я написал на случай что прифекс у DLE была dle_ а у WordPress wp_.
5. Теперь можно переносить категории, то-есть, теперь они называются рубрики, для этого делаем запрос
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;
6. Теперь нам нужно переместить материалы (посты, новости как хотите назовите)
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, CONCAT(d_p.short_story, '<!—more—>' ,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;
Этим запросом и соединили краткую и полную новость, если вам нужно только полная новость (fullstory) то просто в этом коде найдите
CONCAT(d_p.short_story, '<!—more—>' ,d_p.full_story)
И замените на
d_p.full_story
7. Комментарии, это тоже очень важный момент и однозначно их тоже нужно переместить, вот запрос для переноса комментариев
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;
8. Если у вас установлен плагин All in one SEO то вы сможете так же перенести title-ы страниц, описания и ключевые слова.
INSERT INTO `wp_postmeta` (`post_id`, `meta_value`) SELECT `id`, `keywords` FROM `dle_post`; UPDATE wp_postmeta set meta_key = '_aioseop_keywords' WHERE meta_key IS NULL; INSERT INTO `wp_postmeta` (`post_id`, `meta_value`) SELECT `id`, `descr` FROM `dle_post`; UPDATE wp_postmeta set meta_key = '_aioseop_description' WHERE meta_key IS NULL; INSERT INTO `wp_postmeta` (`post_id`, `meta_value`) SELECT `id`, `metatitle` FROM `dle_post`; UPDATE wp_postmeta set meta_key = '_aioseop_title' WHERE meta_key IS NULL; UPDATE wp_postmeta SET meta_value = (SELECT title FROM dle_post WHERE id = post_id) WHERE meta_key = '_aioseop_title' AND meta_value = '';
9. Теперь из базы данных удаляем все таблицы с префиксом dle_, я оставил только
dle_category dle_comments dle_images dle_static_files dle_tags dle_usergroups dle_users
Зачем, честно говоря не знаю, но я не знаю что будет после их удаление и по этому и вас предупреждаю.
10. Теперь нужно перенести картинки, чтобы они правильно отображались. Для этого папку из DLE под названием uploads копируем в папку /wp-content/, в этой папке тоже есть папка с таким названием.
11. Скачиваем базу данных и открывает его с помощью NotePad++, открываем Поиск и замена и заменяем старые адреса картинок на новые (это очень просто, нужно просто немного мозгов).
12. Теперь осталась только изменить адреса страниц чтобы вы не потеряли свой трафик. Конкретно у меня в DLE была ЧПУ типа 2, то-есть, /категория/ID-имя материала.html. Для того чтобы получить такие же адреса в WordPress нам нужно для начало установить два плагина
Wp-no-category-base — Убирает ссылки типа «/category/»
Rus-to-lat — Переводит URl на латинские символы
Потом войти в Консоль — Параметры — Постоянные ссылки, поставить галочку произвольно и прописать
/%category%/%post_id%-%postname%.html
Теперь адреса страниц те же самые что били в DLE и мне не нужно писать длинные 301 редиректы чтобы не потерять индексацию, уникальность и посетителей. Никакой поисковик не потеряет не одной вашей страницы.
Полный код запроса
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; 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, CONCAT(d_p.short_story, '<!--more-->' ,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;