Перенос базы данных с DLE на WordPress

 

Как я говорил в посте “О блоге” буду постить проблемы с которыми стыкался, так вот на днях решил перенести один из своих сайтов, вернее базу данных с сайта DLE на WordPress. Вам наверно интересно почему я затеял этот перенос? Дело в том что сайт стоял на Нулледе ( новенький потому посещаемости пока почти нет, но деньги в раскрутку уже вложил) и думал как только сайт заработает сам на себя то есть на лицензию, так и сразу куплю но тут подумал, заплати один раз 59$ а потом выйдет новая версия скрипта и плати еще 39$. А на сайте около 2 к статей и переливать всех времени лишнего как-бы и нету. Решил перелить только категории, посты, юзеров и комментарии короче говоря самое главное.

Так начинаем перенос базы данных с DLE на WordPress, для начала нам нужно сделать бекап БД и файлов (на всякий случай). Я перезаливал на Суб-домене не хотел чтобы сайт лежал, а на локалхосте вечно проблемы с кодировкой…

После того как сделали бекап заливаем на новый домен одну папку с бекапа файлов «uploads». В которой хранятся у нас картинки.

Далее устанавливаем WordPress, как установить описано в этом посте.

После установки WordPress нам нужно установить 2 плагина:

1)«wp-no-category-base» (он убирает с ссылки категорий);

2)«rus-to-lat» (для отображения URL красивыми англ. буквами);

Один из самых важных пунктов, как оставить все ссылки на статьи прежними важно для поисковых систем, нем же не нужны 404-тые ошибки… тогда (сделаем такие же как были на DLE).

Идем в Админку –> Постоянные ссылки —> и в “Произвольно” вставляем

/%category%/%post_id%-%postname%.html

Опишу:

/категория/id поста-название_поста.html

Если у вас было по другому то нужно переделывать под себя. Ничего сложного нет.

Поехали дальше

Теперь через phpMyAdmin импортируем нашу старую базу данный в новую.

После чего переходим во вкладку SQL (тоже в phpmyadmin) и выполняем такой запрос:

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;

 


Вот и все должно все работать.

Когда я делал эту процедуру первый раз то у меня была проблема с кодировкой место русских символов было такое ????? ???????????? slovo ?????.
Если у вас возникла такая же проблема то нужно, перед тема как заливать нашу старую БД открыть ее с помощью Notepad++ и посмотреть кодировку (у меня была Asci). И перед загрузки этой БД в нашу новенькую котораяWordPress, нужно выбрать кодировку. Я выбрал windows-1251 и все отлично заработало.
Рад если кому-то помог:)