Образное добавить комментарий comment. Пользовательский вывод комментариев

Вопрос, нужно ли вам комментирование WordPress сайта или нет, должен решать владелец сайта. В системе WordPress изначально заложено гибкое управление и организация комментирования. Настройки комментариев, а на WordPress они называются «Настройки-Обсуждения», одни из самых, если не сказать, самые объемные.

В этой статье я не буду рассуждать, нужны комментарии на WordPress или не нужны, это решать вам, здесь посмотрим, как управлять комментированием на блоге (сайте) WordPress используя системные возможности и функционал phpmyadmin, а также сторонние плагины.

Как включить и отключить общее комментирование WordPress

Управление комментированием WordPress находится на вкладке «Настройки-Обсуждение». Вкладка «Настройки-Обсуждение» одна из самых объемный в системе. Здесь вы можете:

  • Включить или отключить комментирование для всего блога WordPress, включая все посты, страницы, медиафайлы;
  • Установить срок комментирования новых статей (по умолчанию 14 суток);
  • Указать уровень вложенности (дерево) комментариев;
  • Включить управление обратными ссылками в комментариях;
  • Определить порядок модерации комментариев и еще 5 групп настроек.
Настройка комментирование WordPress

Как отключить комментирование отдельных постов и страниц WordPress

Управление, а вернее кнопка запретить/разрешить комментарии есть на страницах редактора постов и страниц. Чтобы она появилась на экране, вверху откройте слайдер «Настройки» и в чекбоксе «Обсуждение» поставьте галочку. Теперь, вы сможете отключать комментирование отдельной статьи и страницы.

Как удалить все комментарии WordPress

Удалить все комментарии WordPress можно двумя способами:

1. Из панели управления на вкладке «Комментарии». Достаточно выделить чекбоксы удаляемых комментариев или выделить все комментарии и выбрать «Действие-Удалить».
комментирование WordPress

1. Из панели phpmyadmin. Авторизуйтесь в панели вашего хостинга и войдите в phpmyadmin. Откройте базу данных вашего WordPress и найдите таблицу «wp_comments». Именно здесь «лежат» комментарии вашего блога. Если нужно удалить все комментарии жмете на кнопку «Очистить» в строке «wp_comments». Таблица будет очищена, что означает удаление всех комментариев на блоге.

Как удалить комментарии отдельных пользователей WordPress

Удаление комментариев отдельных пользователей (подписчиков) делается аналогично предыдущему пункту, только фильтруя пользователей по имени (email, ID).

Вариант 1. В панели управления входите на вкладку «Комментарии». В фильтре вписываете искомого пользователя, чьи комментарии вы хотите удалить. Выделяете чекбоксы этих комментариев и удаляете.


Кнопки управления комментариями

Вариант 2 . Идете в phpmyadmin. Открываете базу данных своего блога.

Примечание: Перед работой с базой данных сделайте резервную копию базы, кнопка «Экспорт».

Можно сделать SQL запрос и показать, какой вы умный. Но мы пришли в phpmyadmin, а это интерфейс для упрощения работы базой данных. Поэтому пойдем простым путем:

  • Откроем таблицу с комментариями;
  • В поле «Сортировать по индексу» отсортируете таблицу по нужному вам полю. Например, по email пользователя (comment_author_email);
  • Теперь в фильтр вставьте email искомого автора и нажмите «Enter»;
  • Видим все комментарии этого автора и, выделив их чекбоксы, удаляем кнопкой «Удалить».

Вернусь к SQL запросам. Все действия с фильтрами можно заменить следующими SQL запросами к базе данных (в запросах wp меняете на префикс свое базы данных) :

Удаление комментариев по ID пользователя:

DELETE FROM `wp_comments` WHERE `wp_comments`.`comment_ID` = 2

//2 это значение ID пользователя, можно нескольких пользователей через запятую.

Удаление комментариев по email автора:

DELETE FROM `wp_comments` WHERE `wp_comments`.`comment_author_email` = "email_автора"

Удаление комментариев по его имени:

DELETE FROM `wp_comments` WHERE `wp_comments`.`comment_author` = "Имя_автора"

В продолжение темы SQL запросов для WordPress почитайте статью « », я дополнил её еще несколькими полезными запросами. А лучше учите матчасть, SQL запросы для WP, очень просто составить самому.

Плагины расширяющие функционал комментирования

Посоветую два плагина, которые переведут комментирование на новый уровень.

Первый плагин это плагин «Discus» (https://wordpress.org/plugins/disqus-comment-system/). Он синхронизирует ваш блог WordPress с сервисом комментариев Discus (https://disqus.com/home/explore/). Комментарии, оставляемые вашими пользователями или гостями, поселятся в сети под своим адресом: Ваш_discus.discus.com и могут зажить в сети своей жизнью, улучшая оптимизацию сайта участием в осуждениях Discus сообщества или открытием своего канала.

Второй плагин называется «Comments – wpDiscuz» (https://wordpress.org/plugins/wpdiscuz/). AJAX система комментирования в реальном времени с пользовательской формой комментариев и своими полями. Предназначен для надстройки системных комментариев WordPress. Очень быстрый и отзывчивый с десятками функций.

Здравствуйте!

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

Начну с того, что в каждом шаблоне (теме) WordPress есть файл comments.php , Полный путь к нему от корневого каталога: /wp-content/themes/папка_шаблона/comments.php

Именно comments.php отвечает в целом за блок комментариев в конкретной теме WordPress.

Что чаще всего содержится в comments.php:

– проверка защиты комментариев паролем

– проверка разрешены ли комментарии к статье

– проверка наличия комментариев и вывод соответствующего текста (“Комментариев нет …” или “Оставлено n комментариев”)

вызов функции вывода комментариев – wp_list_comments()

– вывод навигации (пейджинации) при многостраничном размещении комментариев

– вывод формы для оставления комментариев к статье

Здесь понятно, что вы можете задавать свои классы или изменять свойства в style.css для уже существующих классов. Таким образом, вы можете изменить внешний вид формы для оставления комментариев и текстов до списка комментариев и после этого списка или формы. Но стили вывода непосредственно самих комментариев в comments.php изменить нельзя.

Когда я перечислял содержимое файла comments.php , то специально отметил подчеркиванием, что в comments.php происходит всего лишь вызов функции вывода комментариев wp_list_comments() , но не сам вывод. Т.е. в comments.php вы не найдете (по крайней мере, в последних версиях WordPress и при правильном подходе к разработке шаблонов): вывод имени автора сообщения и ссылки на его сайт, вывод аватарки автора, вывод даты и времени комментария, самого комментария и ссылки “ответить”.

Как же изменить стили в списке комментариев?

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

Вызов функции wp_list_comments() возможен без колбэка (callback – функция обратного вызова) и с колбэком.

1. Вызов wp_list_comments без колбэка:

Т.е. в параметрах функции (то что в скобочках, после названия) нигде не фигурирует параметр с названием ‘callback’.

Если в comment.php вашего шаблона такая ситуация, то это означает, что в данной теме нет собственной (пользовательской) функции для вывода комментариев и для этого используется стандартный шаблон (шаблон из ядра WordPress). Расположен он файле . А поскольку , то в данном случае изменить стили отображения комментариев не получится, пока мы не прейдем ко второму варианту.

2. Вызов wp_list_comments с колбэком:

"type=comment&avatar_size=48&callback=custom_comment" ) ; ?>

callback=custom_comment указывает, что для вывода комментариев у нас есть пользовательская функция custom_comment , код которой, грубо говоря, мы и передаем в качестве параметра для исполнения в стандартную функцию wp_list_comments . Но нас интересует больше не техническая сторона этого вопроса, а именно наличие в шаблоне собственной функции для вывода комментариев. Код этой функции расположен в .

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

Код пользовательской функции интуитивно понятный. В нем, обычно, используются следующие стандартные функции WordPress:

get_comment_author_link() – получает html ссылку на сайт автора текущего комментария;

get_comment_date() – получает дату комментария;

get_comment_time() – получает время комментария;

comment_text() – выводит текст комментария;

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

Например, в коде пользовательской функции фрагмент вывода аватарки:

< div class = "comment-author" >

< / div >

Теперь осталось в style.css задать желаемые свойства классу comment-author . Подробней конкретные примеры изменения стилей рассмотрю в одной из следующих статей.

Теперь у вас может возникнуть вопрос: “Что делать, если в моем шаблоне нет пользовательской функции для вывода комментариев?

Ответ: нужно создать её.

Самый простой вариант – скопировать код стандартной функции WordPress comment() .

Инструкция по созданию пользовательской функции для вывода комментариев:

1. Откройтефайл /wp-includes/comment-template.php и найдите в нем функцию comment() .

Вот начало её описания

/** * @since 3.6 * @access protected * * @param object $comment Comment to display. * @param int $depth Depth of comment. * @param array $args Optional args. */ protected function comment($comment, $depth, $args) {

* @since 3.6

* @access protected

* @param object $comment Comment to display.

* @param int $depth Depth of comment.

* @param array $args Optional args.

protected function comment ($ comment , $ depth , $ args ) {

2. Скопируйте все тело функции comment() .

Скопировать нужно фрагмент кода от начала описания, показанного в пункте 1 до закрывающейся фигурной скобки } и следующего за ней подобного описания другой функции

Давненько я ничего не писал про WordPress. Поэтому сегодня я поделюсь с Вами тем, как можно вручную изменить форму комментирования в ВордПрессе. Думаю, что эти знания могут пригодиться любому начинающему блогеру, ведь форма комментирования это, порой, единственное средство общения посетителей и автора. Не проходите мимо:)

Перед тем, как мы начнем какие-либо манипуляции с кодом, хочу Вас заранее предупредить, что мы будем править файлы самого WordPress’a, а не файлы темы. Да, это может-быть покажется кому-то опасным, кому-то бессмысленным, кому-то просто не понравится:) Но Я сделал это именно так и никаких проблем у меня не возникло. Советую перед началом сделать бекап редактируемого файла.
Насчет безопасности предупредил, теперь хочу показать результат, к которому я пришел.


Как мы видим, была убрана строчка «Ваш e-mail не будет опубликован. Обязательные поля помечены *». Не нужно считать посетителей безмозглыми идиотами. Они итак понимают что нужно заполнять, а что нет. Так же я спрятал названия полей внутрь самих полей. К чему эти жирные записи? Большинство посетителей уже и без названий полей может «на глаз» определить, какое к чему относится. Но внутренние хинты все таки должны присутствовать. Ну и подпись к полю комментария утратила свою ненужную жирноту. На мой взгляд, так стало гораздо лучше и свободней.

Так давайте же скорее все менять! ;)
Идем в папку своего сайта и находим в нем файл wp-includes/comment-template.php. Ищем в нем строку 1522, да да именно ее. Как я сам ее нашел это целая история, расскажу об этом чуть позже:)
Итак, открываем файл на редактирование и переходим к 1522 строчке. Сейчас она и следующие (до 1529й) примерно такие:

$fields = array("author" => "

" . " " . ($req ? "*" : "") . "

", "email" => "", "url" => "

" . "

",);

Как все просто и понятно. Достаточно просто вырезать все лишнее и немного дописать. Дописывать будет параметр

Placeholder="Текст подсказки"

Этот параметр позволяет выводить внутри полей любой текст. Используем его для вывода подсказок:

"

" "

" "

"

Удалять же будем строки:

"

" . " " . ($req ? "*" : "") "

"

Они отвечают за вывод подписей над полями.
В результате ВСЕХ этих манипуляций, получаем следующее:

$fields = array("author" => "

", "email" => "

", "url" => "

",);

Остается только удалить глупую подсказку «Ваш e-mail не будет опубликован. Обязательные поля помечены *». Для этого удаляем строку (примерно 1537):

"comment_notes_before" => "

" . __("Your email address will not be published.") . ($req ? $required_text: "") . "

",

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

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

Статьи по теме: