1

Тема: Перенос БД сайта с DLE на WordPress

Итак, сайт перенесли (точнее, перенесли базу исходного сайта функционировавшегося на  DLE для нового взаимодействия ее с WP - все, вроде, ОК, кроме небольших возникших нюансов. Причем, нюансов достаточно, чтобы не просто забыть про перенос, а подъсуетиться, чтобы последствия от переноса были минимальными...

Какие возникли нюансы:

1. Не все категории, которые были активными на DLE оказались перенесены (одна категория канула в Лету).

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

3. В админке при просмотре дерева категорий мы видим, что новостей после переноса в них нет, хотя при выводе они (новости) отображаются корректно.

Поделиться

2

Re: Перенос БД сайта с DLE на WordPress

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

Отсутствуют (не выводятся) категории (рубрики):
- Документация (рубрика) - doc
- Развлекательный софт (подрубрика) - game
- Программы для обучения (подрубрика) - les
- Софт WEB-разработчика (подрубрика) - web

Почему не выводилась рубрика "Документация" осталось не понятно, но для того, чтобы данная рубрика начала отображаться оказалось достаточным просто обновить данную рубрику в админке.

Остальные рубрики не отображались по причине отсутствия в них новостей.


По третьему пункту: Для переноса категорий мы использовали следующий запрос:

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';

в котором отсутствует команда для заполнения столбца "count" в таблице "wp_term_taxonomy" по той простой причине, что в DLE не предусмотрено хранение в БД данных о количестве новостей, содержащихся в данной, конкретной директории. Поэтому заполняем данный столбец руками.

Для этого, ориентируясь на данные столбца "term_id" таблицы "wp_terms",

заполняем столбец "count" в таблице "wp_term_taxonomy".

После данной коррекции "неотображаемые" рублики начинают отображаться в списке рубрик, но при выводе содержимого рубрик отображается страница не содержащая новостей. Это может быть по той причине, что изначально одна и та же новость была помещена сразу в несколько DLE-категорий. При переносе новость будет зафиксирована только в одной. Например, изначально "новость №1" была помещена в категорию "Системный софт" и в "Развлекательный софт". При переносе она разместилась в рубрике "Системный софт" и, как уже было сказано выше, будет отсутствовать в рубрике "Развлекательный софт" . Необходимо отредактировать новость и отметить "галочкой" ее принадлежность к рубрике "Развлекательный софт".

Поделиться

3 (2013-12-09 18:07:08 отредактировано SV)

Re: Перенос БД сайта с DLE на WordPress

Для переноса сайта с DLE на WP можно использовать давно проверенные коды запросов к БД.

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;

Чтобы сохранить те же URL с ЧПУ которые были на прежнем сайте, нужно на WP поставить плагин WP No Category Base, который убирает категорию из URL. Т.е. если без плагина у вас  было `myblog.com/category/my-category/` то после активации плагина будет `myblog.com/my-category/`.
После установки плагина нужно откорректировать настройки постоянных ссылок. Для этого необходимо в Общих настройках опции "Постоянные ссылки" выбрать "Произвольно" и в этом поле прописать /%post_id%-%postname%.html если ваши ссылки на DLE были такого вида, как: mysite.ru/12345-My_post.html

______________________

UP: Не смотря на то, что последняя версия плагина WP No Category Base 1.1.1 датируется 2012-7-29 (и, соответственно, он совместим до версии WP 3.4.2) - он прекрасно работает и с последней версией Word Press 3.7.1. (Несколько часов назад проверил на практике). Самое ценное в данном плагине - он не делает ничего лишнего, а просто убирает ненужное нам после переноса слово, которое автоматически добавляется в URL Ворд Прессом. Скачать WP No Category Base 1.1.1 можно до сих пор тут wordpress.org/plugins/wp-no-category-base/ или по ссылке ниже:

Post's attachments

Attachment icon wp-no-category-base.zip 7.09 kb, 350 downloads since 2013-12-09 

Поделиться

4

Re: Перенос БД сайта с DLE на WordPress

После переноса базы с движка DLE на WP необходимо сделать изменения в таблице wp_post. Для этого открыть в Notepad++ скаченную базу с этой таблицей и сделать в ней глобальный поиск с изменением:

Найти:

<!--dle_image_begin:http://

Заменить на:

<a href="http://

Найти:

.jpeg|--><img

Заменить на:

.jpeg"><img

Найти:

.jpg|--><img

Заменить на:

.jpg"><img

Найти:

.png|--><img

Заменить на:

.png"><img

Найти:

.gif|--><img

Заменить на:

.gif"><img

Найти:

<!--dle_image_end-->

Заменить на:

</a>

Найти:

\"

Заменить на:

"


Найти:

<!--colorstart:

Заменить на:

<span style="color: 

Найти:

"><!--/colorstart-->

Заменить на:

;">

Найти:

<!--/colorend-->

Заменить на:

</span>


Найти:

<div class="quote"><!--QuoteEBegin-->

Заменить на:

<blockquote>

Найти:

<!--QuoteEnd--></div>

Заменить на:

</blockquote>

Поделиться

5 (2012-06-05 10:24:35 отредактировано bigiiiii_mot)

Re: Перенос БД сайта с DLE на WordPress

Не получается толком перенести статические новости с сайта на dle на сайт wordpress.

Запрос работает как надо, но если делать как здесь Перенос БД сайта с DLE на WordPress то статические страницы с другим адресом получаются

После установки плагина нужно откорректировать настройки постоянных ссылок. Для этого необходимо в Общих настройках опции "Постоянные ссылки" выбрать "Произвольно" и в этом поле прописать /%post_id%-%postname%.html если ваши ссылки на DLE были такого вида, как: mysite.ru/12345-My_post.html

У меня на dle ссылки такие - site.ru/blabla.html а после переноса они получаюся  site.ru/123456-blabla.html

Перенос статических страниц DLE в базу wordpress делался по запросу:

INSERT INTO wp_posts (post_name, post_title, post_content, post_date) SELECT name, descr, template, FROM_UNIXTIME(date) FROM dle_static; 

Поделиться

6

Re: Перенос БД сайта с DLE на WordPress

Через этот запрос не заполняется конкретным значением поле post_type в таблице wp_posts и по умолчанию при переносе страниц в это поле заносится значение "post". Поэтому после завершения переноса Ваши статические страницы (из базы DLE) становятся обычными записями (а не страницами) в БД Word Press. Поэтому они и выглядят так:

bigiiiii_mot пишет:

У меня на dle ссылки такие - site.ru/blabla.html а после переноса они получаюся  site.ru/123456-blabla.html

Если перенесенных страниц немного, то можно в ручную сделать изменения в базе заменив значение "post" в поле post_type на "page".

Затем нужно установить плагин Как добавить .html в конец URL страниц для того, чтобы Ваши страницы заканчивались на .html

Поделиться

7

Re: Перенос БД сайта с DLE на WordPress

Здравствуйте.
Позвольте дополнить.
Переносил сайт по запросам выше, запросы все корректно прошли, все добавилось, кроме тэгов, ключевых слов и описаний  вордпрессе.
Установлен плагин в вордпресс - all in one seo pack.
В него вручную вносить все поля для каждого поста просто не реально.
Импортировать ключевые слова (keywords), описания (descritpion) и сео заголовки (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 = '';

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

Тэги в вордпресс так и не сообразил как импортировать, в таблицах не разобрался, как все связать воедино.
Может кто поможет импортировать тэги из DLE в WORDPRESS?
(аналогичное сообщение от меня же и на другом форуме есть, ответа пока нет)

Спасибо сказали: SV1

Поделиться

8

Re: Перенос БД сайта с DLE на WordPress

JD пишет:

Может кто поможет импортировать тэги из DLE в WORDPRESS?

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

Поделиться

9

Re: Перенос БД сайта с DLE на WordPress

С помощью ваших "инструкций" перенес базу(115Мб) дле на wp. Возник вопрос:
Если в новости была ссылка в leech (dle) для WordPress она умерла на всегда? (Перенести нет возможности)

Сайт info

Поделиться

10

Re: Перенос БД сайта с DLE на WordPress

Если ссылка была в leech, то конечно просто так назад ее не вернуть.

Спасибо сказали: info1

Поделиться