Перенос статей сайта на LiveStreet в WordPress

Перенос статей сайта на LiveStreet в WordPress

По мотивам свежего переноса сайта на livestreet в wordpress — опишу свои действия и неудачи 🙂

Итак, прежде всего хотелось спасти контент статей, а не весь функционал, исходя из этого и принимались соответствующие решения.

Вначале было испробовано решение, описанное на одном из сайтов в выдаче гугла. Дорабатываем выгрузку ленты RSS контента в livestreet, затем штатным импортом загружаем полученный xml-файл в wordpress. В целом решение логичное и несложное, даже для новичков.

Однако при загрузке было выявлено несколько косяков, таких, что от этого варианта пришлось отказаться. Во-первых, картинки в постах не загрузились совсем. Хотя они были выгружены в стандартный формат ленты RSS и вроде бы не должно быть с ними проблем. Далее, проблема с тегами. Они в RSS не выгружались, а переписывать формат выгрузки не было большого желания.

В итоге, был рассмотрен вариант с загрузкой дампа SQL из одной базы в другую.

Выгружаем дамп в файл:

shell> mysqldump livestreetdb > dump.sql

Далее делаем копию этого файла и оставляем в нём только таблицы ls_topic, ls_topic_content и ls_mtopic_extended, из которых затем вытянем нужную информацию.

Загрузим полученный дамп в базу wordpress:

mysql -u root -p wpdb < newdump.sql

Затем выполним sql-запрос:

INSERT INTO wp01_posts (
    post_title, post_date, post_name,
    post_content, ID
)
SELECT
    topic_title,
    topic_date_add,
    topic_url,
    topic_text_source,
    t.topic_id
FROM
    ls_topic AS t
    JOIN ls_topic_content AS tc ON t.topic_id = tc.topic_id
    JOIN ls_mtopic_extended AS te ON t.topic_id = te.topic_id
WHERE
    t.topic_publish = 1;

Здесь мы добавляем в таблицу wp01_posts наименование топиков, дату публикации, относительный url топика, сам контент и ID топика в старой базе.

Здесь как видим, нет информации об авторе статьи и для его переноса необходимы дополнительные инструменты (а также автора легко проставить в админке wordpress после переноса). Также теряются категории и теги, но они были не столь критичны в этот раз. Но перенести их в соседнюю таблицу также не представляет большой сложности.

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

Если у вас есть более красивое решение для переноса контента, предлагаю поделиться им в комментариях 🙂