CMNT ParentChanger — плагин для работы с древовидными комментариями в WordPress

Привет, народ! Созрел я наконец написать свой первый плагин для WordPress и назвал его «CMNT ParentChanger». Так что сегодня буду рассказывать о том, зачем, почему и для чего я его создал ;)

Итак, начнем с расшифровки названия — Comment's Parent Changer — а по-русски — плагин, который позволяет управлять вложенностью комментариев. Что это такое, вы спросите? Если в настройках вашего блога на WordPress активирована опция «Включить древовидные комментарии», то вы знаете, что обсуждения могут иметь некоторую иерархию, позволяющую визуально определить последовательность ответов. Лично я сторонник данного отображения, а то иногда смотришь на большую ленту комментариев на каком-нибудь блоге и вообще не понимаешь, что в каком месте обсуждается и куда относится тот или иной ответ. Ну, в общем-то, это совсем не гуд!

В древовидных комментариях все гораздо круче! Однако у такого способа отображения есть один большой минус, некоторые комментаторы почему-то не догадываются (ленятся/просто не знают) при ответе на какой-нибудь комментарий нажать кнопочку «ответить», а просто заполняют форму комментирования и отправляют. В итоге этот комментарий становится верхнего уровня, хотя по логике был ответом на какой-то другой коммент. Знакомая ситуация?

Вот я и решил исправить эту несправедливость — сделать удобный и человекопонятный интерфейс, позволяющий быстро указывать для комментария его желаемого родителя. Функционал, я думаю, предельно просто и понятен — при редактировании комментария в соответствующем поле прописываем ID родителя и жмем сохранить, все готово, иерархия восстановлена.

Давайте приступим непосредственно к описанию и рассмотрению плагина.

  • Скачиваем архив — cmntpc_v.1.0
  • Распаковываем из архива файл cmntpc.php
  • Закидываем файл в папку с плагинами на сервер /wp-content/plugins/
  • Идем в админке в раздел «Плагины», находим «CMNT ParentChanger» и активируем:
    Активация плагина CMNT ParentChanger
  • Затем в меню настроек находим соответствующую опцию и тыкаем...
    Ссылка на управление плагином CMNT ParentChanger
  • ...и видим следующее:
    Панель управления плагином CMNT ParentChanger

Я постарался максимально понятно внутри описать процесс работы, так что вы легко разберетесь. Даже на двух языках!
На всякий случай, для тех, кто всего боится, написал пример исполняемого запроса к базе данных MySQL. Как видите, ничего страшного не происходит: берется таблица wp_comments, ищется комментарий с номером comment_ID, а в ячейку comment_parent записывается номер родителя.

Алгоритм работы: находим у себя на блоге комментарий, который выбился из иерархии, определяем его ID и записываем в первое поле. Дальше определяем ID родительского комментария, то есть ответом на который должен стать первый коммент, и записываем во второе поле. Нажимаем «Пуск», а затем чистим кеш (если стоит кеширующий плагин). Обновляем страницу поста с комментариями и радуемся.

ВНИМАНИЕ — плагин не поддерживает перенос комментариев из одного поста в другой путем присвоения родительского ID от комментария из соседнего поста. Хотите поэкспериментировать — можете попробовать, но я бы не стал этого делать.

Может быть, эта система покажется кому-то не очень удобной, но и это я предусмотрел ;) При редактировании комментария в админке добавлено поле, позволяющее не определять ID комментария, которому надо присвоить родителя, а достаточно просто указать ID родителя:

Дополнительная форма при редактировании комментария

Кстати! Указав в поле «Parent Comment ID» значение «0» можно удалить вложенность комментария, то есть родительское свойство. Комментарий станет комментарием верхнего уровня.

Теперь немного о том, как можно определить ID комментария:

  • При редактировании комментария. Посмотрим в адресную строку и увидим что-то похожее:
    http://site.ru/wp-admin/comment.php?action=editcomment&c=5771
  • Просто скопировав ссылку непосредственно на комментарий на блоге:
    http://site.ru/post/2573#comment-5771
  • Нажав на кнопку «ответить», или посмотрев на ссылку, которая подсвечивается при наведении на кнопку «ответить»:
    http://site.ru/post/2573?replytocom=5771#respond
  • То есть в данном конкретном примере ID комментария будет 5771

Вот и все, вроде бы! Пользуйтесь на здоровье и оставляйте свои отзывы, но только правильно, с учетом иерархии ;)

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

С уважением, Александр Алаев
 
Ерунда и баянЪ!Зачет! Плюсую!
+1
 
Оптимизация сайта

Профессиональный технический аудит и оптимизация вашего сайта.
Тот самый необходимый «фундамент» для успешного продвижения.

от 10 000 руб.
Продвижение сайта

Комплексный подход к решению поставленных задач, будь то достижение заветных позиций в ТОП 10 или увеличение трафика на сайт. В стоимость уже включены полный технический аудит и оптимизация сайта.

от 15 000 руб.
Консультация

У вас недостаточно знаний?
Нужен ответ на ряд вопросов?
Хотите узнать мнение эксперта?
Вы задаете вопрос — я на него отвечаю!

1 500 руб./час
 
Получай новости блога АлаичЪ'а на e-mail:
 
Другие посты из категории WordPress:
Что нового на форуме:
  1. dachnik (16 комм.)

    Мне надоело мучатся с WordPress и я перешел на Drupal. Чего и вам советую

    Ответить
    • АлаичЪ

      А я и не мучаюсь, кто вам такое сказал ;) Мне все эти колупания вкайф!

      Да и WordPress имеет свою огромную аудиторию пользователей, и она вряд ли откажется от WP в пользу другого движка.

      Ответить
    • Ольга (1 комм.)

      А кто вам сказал, что с drupal не будите помучатся? Настанет тот момент когда вы добрым словом вспомните старину вордпресс)

      Ответить
  2. Игорь (1 комм.)

    Конечно все это очень интересно и полезно, я тоже пользуюсь WordPress, кое что конечно не понятно. Но думаю что разберусь как немного времени появиться и обязательно вернусь обратно на Ваш блог, чтобы заново перечитать.

    Ответить
  3. Ольга Москалец (2 комм.)

    Автор, подскажите пожалуйста, а если у меня вообще перестали отображаться комментарии в последней статье, с чем это может быть связано? В Гугле и Опере их нет, а в Мозилле только видны. К остальным статьям — все на месте. Если это плагин ( у меня

    WP Thread Comment), то почему только к последней статье?..

    Спасибо!

    Ответить
    • АлаичЪ

      Как бы я не хотел вам ответить и помочь, я не знаю, потому что с плагином WP Thread Comment дела никогда не имел.

      Но, возможно, стоит обновить его, если обновления существуют.

      А вообще какая у вас версия WP, что вы испольуете такой плагин, ведь уже довольно давно WP по умолчанию понимает древовидные комментарии?

      Ответить
      • Ольга Москалец (2 комм.)

        Версия WP 3.2.1 У меня установлено автоматическое обновление WP. Потому как обновлять каждый раз на новую версию мне всегда страшно...

        Да и дело может вовсе не в древовидных... Почему тогда в Мозилле видно?

        Ответить
        • АлаичЪ

          Если речь идет про ваш блог batikom.ru, то код у вас грязноват, конечно.

          Во-первых, я сейчас, используя Chrome, посмотрел последнюю запись на блоге и увидел там комментарии. Рекомендую отключить ваш странный плагин и посмотреть что будет. Если все нормально, то рекомендую впредь обходиться без него. А подстроить комментарии в дерево, если после отключения плагина они все будут одного уровня, можно с помощью моего плагина, описанного выше.

          Во-вторых, рекомендовал бы почистить код, там много лишнего. Это уже мое личное мнение.

          Ответить
  4. vde (1 комм.)

    А чем не понравился плагин Move WordPress Comments от Nicolas Kuttler? Делает все то же самое, плюс позволяет переносить комментарии между постами.

    Ответить
    • АлаичЪ

      Не знаю, я его не смотрел. Да и свой надежнее и понятнее ;)

      Ответить
Оставь комментарий или спроси через Twitter →

· Малоинформативные комментарии или комментарии, не содержащие вопрос, удаляются.
· В поле URL оставляйте ссылку только на свой сайт/блог. Эта ссылка для админа, посетители ее не увидят.
· Любой html-код отображается в виде текста, любые ссылки неактивны.
· Для спаммеров - БЛОГ НЕ DOFOLLOW!!!