Улучшение комментариев WordPress

Привет всем, на связи снова Дмитрий Новоселов. Давно я что-то не писал, это потому что занимался улучшением комментариев. И вот закончив решил рассказать как сделать древовидные комментарии которые у меня на сайте. Вот скриншот.

komment

Что будем разбирать в статье?

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

Подключение древовидных комментариев при помощи плагина

Для тех у кого тема не поддерживает древовидные комментарии был разработан специальный плагин WordPress Thread Comment

 komment1

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

Но есть и недостатки,  комментарий ответа автоматически помещается в комментарий на который идет ответ. Надеюсь поняли о чем я, чтобы без скриншотов =) Еще одинм недостатком является, то что при нажатии кнопки «Ответить» форма комментирования может не подтягиваться для удобства и эту проблему придется править залезая в код.

Я не отговариваю от использования данного плагина, кому-то он будет даже очень полезен, если слегка поработать со стилями, то будет очень даже ничего.


Древовидные комментарии без плагина (когда тема не поддерживает древовидность)

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

!!! Предупреждаю заранее!!! Сделайте резервные копии следующих файлов

(comments.php, functions.php) находятся в теме wp-content/themes/название вашей темы

(comment-template.php) находится в ядре блога и любые изменения в этом файле при обновлении версии worpress будут сходить на нет!!! Если вы не хотите заново править код после каждого обновления, то скопируйте функцию в которой делаете правки в файл functions.php. Все эти действия надо делать аккуратно, так как могут возникнуть ошибки сайта!!! 

Предупредить предупредил, а теперь в путь. =)

Изначально в файле ядра comment-template.php находится функция отвечающая за вывод комментариев, так как мы будем делать свои древовидные комментрии, то у нас она будет отличаться и чтобы не было проблем, вы добавим свою функцию, но в файл functions.php

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

Находим блок с main-list-comments , в разных темах содержимое этого блока реализовано по разному. Но теперь когда мы добавили нашу функцию, то нужно просто заменить этот блок и все его содержимое на:

Если у вас в этом блоке было много кода, не пугайтесь! Мы все равно сделали резервную копию.

По идеи древовидность должна работать, но для этого она должна быть включена в настройках WordPress

komment2

Внимательно прочтите все настройки!!!

Пол пути пройдена! =)


 Подтягивание формы комментирования при нажатии кнопки «ответить»

Если мы сделали все правильно, то древовиные комментарии должны работать, но есть одно «НО»

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

Для этого нам понадобиться следующий код

Его можно вставить в файл шапки header.php между тегами head либо в functions.php

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

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

Не забудь те проверить наличие указанного в пути файла, если его не будет то скачайте!

Пока я не добавил эту строчку, подтягивание у меня не работало.


 Делаем ссылки при помощи скрипта, чтобы поисковик не индексировал и не было дублей страниц.

Все хорошо комментарии работают, но в конце приписывается replytocom, что в результате создает дубли страниц, а это приводит к тому что падает трафик, сайт попадает под фильтры поисковых систем. По этому я решил, сделать ссылки «ответить», через скрипт. Я это реализовывал через ядро, но вы можете вывести функцию в functions.php , но для этого вам придется переименовывать обращения к новой функции…(геморой).

Поэтому я решил, что при обновлении быстро перенесу нужный код в ядро…, но знайте это не правильно! Лучшим вариантом создать собственный плагин, мне пока до такого рано.

От воды к коду. В файле comment-template.php находим функцию get_post_reply_link , далее находим в этой функции переменную $link, ее то мы и будем изменять. Вместо того кода, что там есть вставляем

Теперь ссылки реализованы через скрипт и дублирования страниц не должно быть.


 Подключение плагинов для улучшения комментирования

Первым плагином я подключил Comment Validation, просто находите через поиск либо качаете и загружаете. После активации он начинает работать. Работал нормально, но меня не устраивало, то что он выводил текст ошибки на английском. Для этого я слел некоторые правки в скриптах. Можете скачать 

Следующим плагином WP Russian Quicktags он добавляет кнопочки для тегов, например надо вставить код, или сделать текст жирным. Нам мой взгляд простой и полезный плагин.

Так же есть плагин TinyMCEComments, который чем то похож на предыдущий только более функционален.

Очень часть люди используют смайлики при комментировании, поэтому следующим плагином станет Qip smiles  качаете плагин и устанавливаете, по инструкции как на сайте. Смайлы можно менять в папке плагина.

Так же полезным плагином будет Subscribe To Comments он будет оповещать о комментариях на почту комментатора.

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


 Подключение стилей

Вот мы сделали все предыдущие действия, а комментарии отображаются все равно через одно место…

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

Возможно какие-то стили я захватил лишние когда буду заниматься оптимизацией удалю, здесь стили как для комментариев, так и для формы комментирования обратите внимание на файл name_email_url.png  он для отображения иконок в форме комментирования, его надо залить на сервер и указать свой путь до него.

Стили прописали, но если у вас подключается стандартная форма комментирования, то надо подключить свою!!!

В файле comments.php ищем строчку

Может быть такое, что у вас вместо этой строчки будет сама форма комментирования она заключена в тег form, в обоих случаях заменяем на следующую строчку

Теперь нам надо добавить эту новую функцию в файл functions.php

Выглядит она так

В этот же код я вставил строчку отображения смайликов.

Вот вроде бы и все. Надеюсь кому-то будет полезна информация, возникнут вопросы пишите!