Функции WordPress

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

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

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

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

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

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

Я постарался максимально понятно внутри описать процесс работы, так что вы легко разберетесь. Даже на двух языках!
На всякий случай, для тех, кто всего боится, написал пример исполняемого запроса к базе данных 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

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

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

Похожие статьи

Кнопка «Наверх»
Закрыть

Обнаружен Adblock

Пожалуйста, подумайте о том, чтобы поддержать нас, отключив свой блокировщик рекламы!