Поддержка Проблемы и решения Объединение комментариев

  • Здравствуйте.
    Помогите, пожалуйста, решить следующий вопрос.
    В настоящее время в моем блоге среди прочих есть две страницы («Об авторах» и «О проекте»), которые требуется объединить в одну.
    Что касается самого объединения, здесь все понятно, отредактировать одну страницу, а вторую попросту удалить.
    Однако, на каждой из этих страниц порядка 20-25 комментариев. Возможно ли как-то «безболезненно» перенести комментарии с удаляемой страницы на ту, которая получится в итоге? (Или же придется вручную копаться в базе).
    Прошу вашей помощи.

    С Уважением, Михаил

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Atrax

    (@atrax)

    Ethical engineer

    Или же придется вручную копаться в базе

    Скорее всего.

    Придется копаться, а в частности открыть таблицу wp_comments и проставить в поле comment_post_ID вместо старого ID страницы, ID новой страницы.

    Попробуйте плагин для переноса комментариев.
    Или посмотрите статью, там есть описание переноса комментариев из одной записи в другую средствами phpmyadmin.
    За работу одного и другого не ручаюсь, все не совсем свежее.

    Благодарю за ответы.
    Воспользовался способом через SQL-запрос, все-таки это быстрее чем менять каждую запись вручную =)

    Объясню, может кому понадобится:
    NEW_ID — код страницы, в которую будут переносится комментари (приемник)
    OLD_ID — код страницы, из которой выдираются комментарии (источник)

    1) Сначала определяем количество комментариев для старой записи (источника). Это число (условно COMCOUNT) нам понадобиться потом:
    SELECT comment_count FROM wp_posts WHERE ID=<OLD_ID>;

    2) У каждого комментария (они хранятся в таблице wp_comments) есть параметр comment_post_id — это код записи (или страницы), к которой относится тот или иной комментарий.
    Выполняем SQL-запрос на замену этого параметра. Там где встречается код страницы-источника, заменяем его значение на код страницы-приемника. Так мы перетянем все комментарии
    UPDATE wp_comments SET comment_post_ID=<NEW_ID> WHERE comment_post_ID=<OLD_ID>;

    3) Есть еще один важный пункт. Нужно изменить значения количества комментариев для обоих записей. Здесь нам и понадобиться число comment_count, вычисленное в первом пункте.

    Для старой записи (источника), вычитаем число переданных комментариев из общего числа:

    UPDATE wp_posts SET comment_count=comment_count-<COMCOUNT> WHERE ID=<OLD_ID>;

    Это же число прибавляется к числу комментариев для новой записи (приемника):

    UPDATE wp_posts SET comment_count=comment_count+<COMCOUNT> WHERE ID=<NEW_ID>;

    Все.

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Объединение комментариев» закрыта для новых ответов.