Пользовательский вывод комментариев. Тонкая настройка формы комментирования Публикуем добавить комментарий p

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

Шаг 1. Разбираемся в функцией comment_form и ее аргументами

Рассмотрим функцию WordPress comment_form . Она отвечает за вывод формы комментариев, которая выводится на странице или записи. Вызов данной функции в основном можно встретить в файле comments.php в папке темы. Данный файл включается в различных местах, например, в файлах single.php и page.php , непосредственно или через вызов функции comments_template .

Описание функции можно найти в кодексе WordPress .

Если использовать функцию comment_form для вывода формы, то она будет выводиться с использованием параметров по умолчанию и будет содержать такие поля как имя, email (оба поля являются обязательными), веб сайт и содержание комментария. В теме по умолчанию Twenty Eleven форма будет выглядеть следующим образом.

Некоторые важные аргументы функции comment_form:

  • fields -с его помощью можно управлять выводом полей в форме комментария.
  • comment_notes_before и comment_notes_after - используются для вывода информации перед и после формы.
  • title_reply - используется для изменения названия ответа, которое по умолчанию имеет значение ‘Leave a Reply’.
  • label_submit - используется для изменения текста на кнопке отправки комментария.
Шаг 2. Настраиваем форму комментария с помощью функции comment_form

Теперь настроим нашу форму комментария с помощью передачи аргументов в функцию comment_form .

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

$fields = array("author" => "

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

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

" . __("Website") . "" . "

",);

Если нам нужно удалить поле, например, website , нужно просто исключить его из массива и передать массив в функцию comment_form .

$commenter = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = array("author" => "

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

", "email" => "",); $comments_args = array("fields" => $fields); comment_form($comments_args);

В дополнение также сменим название формы на ‘Please give us your valuable comment’, а надпись на кнопке на ‘Send My Comment’.

Для выполнения задачи передаем в функцию comment_form следующие аргументы:

$commenter = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = array("author" => "

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

", "email" => "",); $comments_args = array("fields" => $fields, "title_reply"=>"Please give us your valuable comment", "label_submit" => "Send My Comment"); comment_form($comments_args);

Теперь форма комментария будет выглядеть следующим образом:

Шаг 3 . Удаляем поля из формы с помощью крюка

Также форма комментария WordPress может быть изменена с помощью крюков и фильтров. Такая настройка может быть особенно полезна при работе с плагином, когда нужно настроить несколько элементов, но не изменять файлы темы. Фильтр для добавления иди удаления полей из формы - ‘ comment_form_default_fields ‘

Удалим поле адреса URL с помощью фильтра. Приведенный код можно использовать в плагине или в файле functions.php активной темы.

Function remove_comment_fields($fields) { unset($fields["url"]); return $fields; } add_filter("comment_form_default_fields","remove_comment_fields");

Шаг 4. Добавляем данные в форму комментария с помощью крюка

Мы можем добавить поля в форму с помощью фильтра ‘ comment_form_default_fields ‘. Добавим поле возраста автора с помощью фильтра и сохраним данное поле дополнительные данные и будем их выводить в комментарии.

Добавляем поле следующим образом:

Function add_comment_fields($fields) { $fields["age"] = "

" . __("Age") . "" . "

"; return $fields; } add_filter("comment_form_default_fields","add_comment_fields");

#respond .comment-form-author label, #respond .comment-form-email label, #respond .comment-form-url label, #respond .comment-form-age label, #respond .comment-form-comment label { background: #eee; -webkit-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); -moz-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); box-shadow: 1px 2px 2px rgba(204,204,204,0.8); color: #555; display: inline-block; font-size: 13px; left: 4px; min-width: 60px; padding: 4px 10px; position: relative; top: 40px; z-index: 1; }

Теперь наша форма комментария будет выглядеть следующим образом:

Теперь возраст хранится как дополнительная информация. Нужно использовать крюк в ‘ comment_post ‘:

Function add_comment_meta_values($comment_id) { if(isset($_POST["age"])) { $age = wp_filter_nohtml_kses($_POST["age"]); add_comment_meta($comment_id, "age", $age, false); } } add_action ("comment_post", "add_comment_meta_values", 1);

Как только данные сохранены, их можно выводить в комментарии следующим образом:

Шаг 5 . Настройка комментариев для определенных типов записей

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

Function add_comment_fields($fields) { if(is_singular("books")) { $fields["age"] = "

" . __("Age") . "" . "

"; } return $fields; } add_filter("comment_form_default_fields","add_comment_fields");

Шаг 6. Создаем возвратную функцию для вывода комментариев

Функция wp_list_comments используется для вывода комментариев в записях. В кодексе WordPress функция описана подробно.

wp_list_comments имеет аргумент ‘ callback ‘ в котором можно определить функцию, которая вызывается при выводе комментария.

В теме Twenty Eleven в файле comments.php можно найти строку:

Wp_list_comments(array("callback" => "twentyeleven_comment"));

Изменим ее на:

Wp_list_comments(array("callback" => "my_comments_callback"));

Функция my_comments_callback будет вызываться для каждой записи.

Шаг 7. Стилизация комментариев

Теперь мы немного изменим стиль комментария. Просто будем выводить содержание записи и поле возраста, которое было добавлено нами ранее. Мы также изменим цвет фона для комментариев.

Код функции ‘ my_comments_callback ‘:

Function my_comments_callback($comment, $args, $depth) { $GLOBALS["comment"] = $comment; ?>

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

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

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

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’e вывод комментариев осуществляется через функцию wp_list_comments , обычно в файле comments.php . А формирование отдельных функций так же, как и сам цикл, используется из шаблона системного файла comment-template.php . Но в редких случаях бывает, что настройка может находиться в теме WordPress, файл functions.php или comments.php .

Так вот, если ваша тема не попадает в редкий случай и есть необходимости сделать свои настройки, тогда открываем файл functions.php и перед знаком?> добавляем следующий код:

If (! function_exists("my_comment")) : function my_comments($comment, $args, $depth) { global $commentnumber; $GLOBALS["comment"] = $comment; switch ($comment->comment_type) : case "pingback" : case "trackback" : ?>

  • После этих манипуляций ваши комментарии будут формироваться по шаблонной функции из файла functions.php текущей темы.

    Подсчет комментариев каждого пользователя

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

    Открываем уже знакомый нам файл functions.php и прописывает в конце перед знаком?> следующий код:

    //подсчет сообщений пользователей function bac_comment_count_per_user() { global $wpdb; $comment_count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM ". $wpdb->comments. " WHERE comment_author_email = "" . get_comment_author_email() ."" AND comment_approved = "1" AND comment_type NOT IN ("pingback", "trackback")"); if ($comment_count == 1) { echo " 1 Сообщение"; } else { echo " " . $comment_count . " Сообщений"; } }

    Теперь осталось добавить функцию вызова в нужное вам место:

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

    Присваиваем статус каждому пользователю в зависимости от количества его комментариев

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

    Снова открываем файл functions.php и перед знаком?> добавляем следующий код:

    //статус пользователя function get_author_class($comment_author_email,$user_id){ global $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("SELECT comment_ID as author_count FROM $wpdb->АдминUseR"; if($author_count>=1 && $author_count=50 && $author_count=100 && $author_count=250 && $author_count=400 &&$author_count=800 && $author_countПрофессор"; }

    И в желаемом месте выводим функцию вызова:

    Объяснение: функция, как и предыдущая, связана с электронной почтой юзера. Только здесь основной задачей является непросто счет сообщений, а количество от и до в зависимости от установленного числа. И как только пользователь достигает его он получает определенную должность. Всего статусов имеется 7, плюс админ и знак отличия для зарегистрированных участников.

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

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

    Открываем файл functions.php и в конце перед знаком?> добавляем следующий код:

    //подсчет сообщений пользователей function bac_comment_count_per_user() { global $wpdb; $comment_count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM ". $wpdb->comments. " WHERE comment_author_email = "" . get_comment_author_email() ."" AND comment_approved = "1" AND comment_type NOT IN ("pingback", "trackback")"); if ($comment_count == 1) { echo " 1 Сообщение"; } else { echo " " . $comment_count . " Сообщений"; } } //статус пользователя function get_author_class($comment_author_email,$user_id){ global $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("SELECT comment_ID as author_count FROM $wpdb->comments WHERE comment_author_email = "$comment_author_email" ")); if($comment_author_email ==$adminEmail) echo "Админ"; if($user_id!=0 && $comment_author_email !=$adminEmail) echo "UseR"; if($author_count>=1 && $author_count=50 && $author_count=100 && $author_count=250 && $author_count=400 &&$author_count=800 && $author_count=1200 && $comment_author_email !==$adminEmail) echo "Профессор"; } //пользовательская настройка комментариев if (! function_exists("wordsmall_comment")) : function wordsmall_comment($comment, $args, $depth) { global $commentnumber; $GLOBALS["comment"] = $comment; switch ($comment->comment_type) : case "pingback" : case "trackback" : ?> @ Ответ для:

    Меняем на эту:

    Заключительный шаг. Открываем файл style.css и в конце прописываем следующие стили:

    My_commentlist{ border-top:none; } .my_commentlist .comment{ padding:0 0 15px 0; border:none; } .my_commentlist .pingback{ padding:0 0 15px 0; border:none; } .my_commentlist .comment .children { list-style-type: none; padding:0px; margin-left:0px;/*если нужен отступ для древовидных ком. поставьте 15px*/ } .my_commentlist .comment .children .comment{ margin:15px 0 0 0; border:none; padding: 0; } #comments { background: #fff; } #comments .my_commentlist { margin: 10px 0; padding: 0; list-style:none; background: #ebf0f3; padding: 5px; } #comments .my_commentlist .comment { margin:0; padding: 0 0 10px; background: #fff; } #comments .my_commentlist .my_comment-author { display: inline; border-right: 1px solid #e0e0e0; width: 100px; float: left; margin: 0px 15px 10px 0; } #comments .my_commentlist .commentmetadata { float:left; } #comments .my_commentlist p { clear:none; color: #555; font: 14px arial; line-height: 23px; } #comments .my_commentlist .comment-content { margin-left: 116px; padding-right: 10px; } #comments .my_commentlist .reply { text-align:right; } #comments .my_commentlist .reply a{ background: #f5f5f5; border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 2px; color: #515456; display: inline-block; font-size: 13px; font-weight: normal; line-height: 30px; margin-right: 15px; min-height: 30px; padding: 0 12px; text-align: center; text-decoration: none; } .my_commentlist .avatar{ border: medium none; border-radius: 50%; float: none; margin: 5px auto; padding: 0px; display: table; } .my_commentlist .comment-header{ height: 30px; background: #DEE5EB; margin-bottom: 15px; } .my_commentlist cite.fn{ color: #444; font: bold 13px/30px arial; padding-left: 10px; } .my_commentlist .com_date { color: #8ca0b5; font: normal 13px/30px arial; float: right; padding-right: 15px; } .my_commentlist .commentnumber { color: #8ca0b5; float: right; font: italic 13px/30px arial; padding-right: 15px; } .my_commentlist .comment-body { overflow: hidden; position: relative; background:#fff; } .my_commentlist .rep-authorcom { color: #25394e; font-size: 13px; line-height: 30px; } .my_commentlist .edit-link a { background: none !important; border: none !important; border-radius: 0 !important; color: #999!important; display: inline-block; font-size: 11px !important; font-weight: normal; line-height: 30px; margin-right: 5px !important; min-height: 30px; padding: 0 !important; text-align: center; text-decoration: none; } .com_per { border: medium none; color: #666; display: block; font-size: 11px; text-align: center; } .vip1,.vip, .vp, .vip2, .vip3, .vip4, .vip5, .vip6, .vip7 { border: medium none; font: bold 13px arial; display: block; text-align: center; margin-bottom: 5px; text-decoration: none; } .vp {color: #e82e24;} .vip1 {color: #348be8;} .vip2 {color: #BE005E;} .vip3 {color: #2e517e;} .vip4 {color: #658a18;} .vip5 {color: #00A56D;} .vip6 {color: #e35d28;} .vip7 {color: #99A400;} .vip {color: #4c5176;font-size: 11px;margin: 0;}

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

    Дмитрий Дементий

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


    Зачем нужны внешние системы комментирования

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


    Сторонние сервисы комментирования обеспечивают следующие возможности:

    • Удобство авторизации для участия в дискуссии. Здесь нужно найти баланс между желанием пользователя как можно быстрее оставить комментарий и необходимостью получить данные о комментаторе со стороны владельца ресурса.
    • Вовлечение аудитории в обсуждение. Сторонние сервисы уведомляют пользователей о появлении новых комментариев.
    • Хранение комментариев. Сторонние системы хранят комментарии пользователей на своих серверах. Это экономит дисковое пространство и уменьшает нагрузку на сервер владельца сайта.
    • Возможность оценивать комментарии.
    • Возможность рекомендовать комментарии.
    • Расширение охвата аудитории за счет автоматической публикации комментариев в профилях пользователей в социальных сетях.
    • Возможность вставлять в комментарии визуальный контент.

    Ниже вы найдете обзоры возможностей наиболее удобных систем внешнего комментирования.

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

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

    Система комментирования Disqus

    Disqus - самая популярная сторонняя система комментирования. По данным создателей, с ее помощью пользователи ежемесячно пишут на сайтах 50 млн комментариев.

    Благодаря популярности сервис Disqus можно считать эталоном или отправной точкой для оценки других внешних систем комментирования.

    Как установить Disqus на сайт


    На странице настроек сайта укажите название ресурса и выберите URL на платформе Disqus. С помощью выпадающего меню определите категорию, к которой относится ваш сайт. Нажмите кнопку Next.


    На следующем шаге выберите план. Доступны следующие варианты:

    • Базовый. Бесплатный план для любых сайтов, в системе комментирования отображается реклама. Disqus делится доходами от рекламы только с сайтами, которые соответствуют внутренним критериям платформы.
    • Plus. Стоимость подписки – 9 долларов в месяц. План позволяет выключить рекламу. Для некоммерческих сайтов, личных блогов, которые не показывают рекламу, план Plus можно подключить бесплатно. Количество просмотров не должно превышать 50 000 в сутки.
    • Pro. Стоимость 89 долларов в месяц, количество просмотров страниц не более 150 000 в сутки. В профессиональном плане есть дополнительная функциональность: расширенная аналитика, приоритетная поддержка, расширенные возможности модерирования.


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


    Выберите платформу, на которой работает ваш сайт. Если готового решения нет, используйте универсальный код.


    Система предложит вам инструкцию по установке плагина Disqus для WordPress. Действуйте так:

    • В консоли WP выберите меню «Плагины – добавить новый».
    • В поле «Поиск плагинов» введите запрос Disqus.
    • Установите и активируйте плагин.
    • На странице установленных плагинов в строке Disqus Comment System выберите меню Configure.


    • Система предложит обновить базу данных. Примите предложение.


    • Введите данные доступа к профилю Disqus.
    • Выберите сайт, на который устанавливаете систему комментирования.
    • Экспортируйте в Disqus комментарии, которые пользователи оставили до установки системы. Для этого перейдите в меню настроек плагина. В разделе Import and Export нажмите кнопку Export Comments.


    Вы установили плагин и подключили систему комментирования к сайту. Теперь пользователи могут обсуждать ваши публикации. А вам нужно уделить внимание настройкам сервиса.


    Настройки системы комментирования Disqus

    Перейдите в меню настроек сообщества на сайте Disqus. На вкладке Settings в разделе General укажите URL сайта. Убедитесь, что напротив опции Enable recommendations for your site установлен флаг. Выберите язык интерфейса комментариев. Сохраните изменения.


    В разделе Community в поле Moderator Badge Text выберите текст, который будет отображаться напротив имени пользователей с правами модераторов. С помощью выпадающего меню выберите принцип отображения комментариев. Доступны следующие вариант: сверху новые, сверху старые и сверху лучшие.


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

    Установите флажок напротив опции Links in Comments. В этом случае система автоматически отправит на модерацию любые комментарии со ссылками. Убедитесь, что напротив опции Media Attachments установлена галочка. Это разрешение публиковать в комментариях изображения и видео.


    Установите флажки напротив двух опций в разделе Flagged Comments. Так вы позволяете пользователям оповещать модераторов о нежелательных комментариях. Также после указанного с помощью выпадающего меню числа отметок система скроет подозрительный комментарий до рассмотрения жалобы модератором. Сохраните изменения.


    В личном кабинете Disqus на вкладке Community вы можете следить за количеством комментариев и отметок «Нравится» и «Не нравится», назначать модераторов, импортировать и экспортировать комментарии. Обратите внимание, экспорт комментариев в Disqus позволяет создать резервную копию файла с комментариями. Эту функцию нельзя использовать, чтобы перенести пользовательский контент в альтернативную систему комментариев.

    Обратите внимание на функцию Word Filter. В соответствующем меню можно добавить стоп-слова, при использовании которых система отправит комментарий в папку «Спам».


    В меню Moderate Comments отображаются все комментарии. Обратите внимание, комментарии на проверке находятся в папке Pending. Они не отображаются на сайте, если их не одобрил модератор. На вкладках Spam и Deleted можно просмотреть спам-сообщения и удаленные комментарии.

    Полезный совет: быстро одобрить или удалить комментарий можно с помощью электронной почты. Для этого достаточно ответить на электронное письмо с уведомлением о новом сообщении на сайте. Чтобы одобрить комментарий, в ответе укажите Approve, чтобы удалить или отправить в папку спам укажите Delete и Spam соответственно.

    Недостатки Disqus

    Самая популярная внешняя система комментирования имеет несколько недостатков. Вот наиболее важные из них:


    • По некоторым данным, Disqus снижает вовлеченность аудитории. Например, летом 2015 года блог о CMS WordPress WPBeginner отказался от Disqus из-за жалоб читателей. После этого количество комментариев увеличилось на 304 % .
    • Непонятная ситуация с индексацией комментариев. Поисковики индексируют их с перебоями. Например, оставленные два месяца назад к одной из публикаций в блоге «Текстерры» комментарии до сих пор остаются уникальными. Написанные год назад комментарии проиндексированы, но в качестве источника система Text.ru показывает сайт Disqus..
    • Отсутствие бесплатного тарифа для коммерческих сайтов.


    Популярность и функциональность превратили Disqus в эталонную внешнюю систему комментирования. Ее достоинства и недостатки можно использовать при оценке альтернативных сервисов.

    Сервис комментирования Cackle

    Cackle - платное решение. Очень похоже, что разработчики учли недостатки Disqus и особенности русскоязычных проектов. Благодаря этому система получила важные преимущества: индексацию комментариев поисковиками и возможность авторизации через аккаунты в популярных в рунете сетях. О других возможностях системы ниже.

    Как установить Cackle на сайт

    После регистрации и подтверждения аккаунта система предложит создать новый виджет. Укажите URL сайта и название виджета и нажмите кнопку «Продолжить».


    Система предложит универсальный код виджета или код для популярных CMS. Выберите нужный вариант.


    Чтобы использовать систему Cackle на сайте под управлением WordPress, установите плагин Cackle . В консоли WordPress выберите меню «Комментарии – Cackle настройки». Скопируйте из административной панели Cackle сгенерированные ключи к API и ID сайта. Вставьте их в соответствующие поля в меню настроек плагина в WordPress. Активируйте виджет.


    Экспортируйте существующие комментарии в систему Cackle. Синхронизируйте виджет с базой данных WordPress.


    Между прочим:

    Интерфейс формы комментирования Cackle очень похож на интерфейс Disqus. Пользователям, знакомым с Disqus, будет просто использовать Cackle.


    Обратите внимание, система поддерживает кросспостинг сообщений «Вконтакте». Эта функция включена по умолчанию. С одной стороны, это может способствовать увеличению охвата аудитории. С другой, пользователей может раздражать публикация сообщений в их профиле без спроса.


    Как настроить систему комментирования Cackle

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


    В расширенных настройках обратите внимание на следующие пункты:

    • Включите премодерацию комментариев, содержащих ссылки.
    • Снимите флажок напротив поля «Гостевые комментарии». Анонимные комментарии не способствуют вовлечению пользователей и доверию к ресурсу.
    • Снимите флажок напротив пункта «Кросспостинг». В этом случае система не будет автоматически публиковать комментарии в социальных сетях.

    Остальные настройки измените на свое усмотрение или сохраните вариант по умолчанию.


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


    На вкладке «Капча» можно подключить сервис reCAPTCHA от Google , а на вкладке «Спам защита» есть возможность подключить антиспам-сервис Akismet.

    Модерировать комментарии можно в консоли WordPress или в административной панели на сайте Cackle. Также вы можете установить мини-виджет модерации. С его помощью модерировать комментарии можно непосредственно на сайте.

    Недостатки системы Cackle

    Cackle - платный сервис. Это его главный недостаток по сравнению с Disqus. Стоимость использования на одном сайте составляет 200 рублей в месяц. Стоит ли тратить деньги ради возможности авторизации пользователей через «Вконтакте» и «Одноклассники»? Это главный вопрос, по результатам ответа на который владелец конкретного сайта должен принимать решение.

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


    Система HyperComments

    HyperComments - платная система комментирования, которая поддерживает авторизацию с помощью профилей в популярных в рунете сетях. Пользователям доступны три тарифа:

    • Personal. Стоит 24 доллара в год, можно использовать на одном сайте. Поддерживает до 500 тыс. загрузок виджета в месяц.
    • Professional. Три сайта, 120 долларов в год, до 2 млн загрузок виджета в месяц.
    • Enterprise. 480 долларов в год, сколько угодно сайтов, до 6 млн загрузок виджета в месяц.


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

    Как установить и настроить HyperComments


    Нажмите кнопку «Далее». Система перенаправит вас на страницу плагина HyperComments в каталоге WordPress. Установите и активируйте плагин. В консоли сайта выберите меню «Комментарии – HyperComments» и авторизуйтесь с помощью аккаунта Google. На странице настроек выберите вкладку Settings. Импортируйте в систему существующие комментарии.


    Остальные базовые настройки можно не менять. Расширенные настройки доступны на вкладке Comments в соответствующем меню.


    В разделе «Общие» включите уведомления администратора и модераторов о публикации нового комментария. При необходимости включите премодерацию всех комментариев.


    В разделе «Структура» при необходимости снимите флаг напротив поля «Разрешать комментарии от гостей». В этом случае пользователи смогут отправить сообщение только после авторизации через социальную сеть. Если вы допускаете агрессивные способы увеличения охвата, включите кросспостинг сообщений.


    В разделе «Цитаты» включите соответствующий виджет. Он позволяет пользователям выделять отрывок текста и делиться им с подписчиками в социальных сетях.


    В разделе HyperComments сохраните настройки по умолчанию. Эта функция позволяет комментировать отдельные фрагменты текста.


    В разделе «Стереокомментарии» можно включить соответствующую функцию. Она объединяет комментарии в две колонки: сообщения автора и всех пользователей. При необходимости можно добавить в колонку автора логотип компании.



    Недостатки системы HyperComments

    Главный недостаток системы - отсутствие бесплатного тарифа.

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

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

    Система комментирования IntenseDebate

    IntenseDebate - внешняя система комментирования, которую разработала корпорация Automattic Inc. Один из главных проектов компании - сервис хостинга сайтов WordPress.com. Поэтому IntenseDebate особенно удачно интегрируются с CMS WordPress.

    IntenseDebate - бесплатный сервис. Его функциональность не уступает эталонному Disqus. Система обеспечивает владельцам сайтов следующие возможности:

    Чтобы воспользоваться возможностями системы, установите ее на сайт и настройте.

    Как установить и настроить IntenseDebate

    После регистрации в системе перейдите на страницу установки системы комментирования . Укажите URL ресурса. Если вы пользуетесь WordPress, установите и активируйте плагин IntenseDebate. Авторизуйтесь на странице настроек в консоли WP.



    В личном кабинете на сайте IntenseDebate включите уведомления о публикации новых комментариев. Переключите язык на русский.


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


    В меню Comments включите возможность авторизации с помощью Facebook и Twitter. Воспользуйтесь подсказками системы, чтобы создать приложение Facebook и получить ключ API. Установите флаг напротив меню Enable «Report this comment» button. Вы включите кнопку «Пожаловаться на комментарий». Выберите вариант отображения трэкбэков. Они могут публиковаться вместе с пользовательскими комментариями или в отдельной области. Для большинства проектов подходит второй вариант.


    При необходимости установите на сайт дополнительные виджеты. В соответствующем разделе личного кабинета доступны такие надстройки:

    • Статистика комментариев - показывает количество комментаторов и сообщений.
    • Последние комментарии.
    • Популярный публикации. Этот виджет отображает список наиболее обсуждаемых постов.
    • Активные комментаторы. Надстройка отображает десять наиболее активных пользователей со ссылкой на их профили в IntenseDebate.


    Модерировать сообщения можно в консоли WordPress в меню «Комментарии».

    Недостатки системы IntenseDebate

    Главный недостаток IntenseDebate - отсутствие интеграции с популярными в рунете сетями, например, «Вконтакте». Для участия в дискуссиях пользователям придется авторизоваться с помощью аккаунтов в Facebook, Twitter, WordPress.com, регистрироваться на IntenseDebate или указывать имя и электронный адрес.

    Tolstoy comments

    Разработчики позиционируют Tolstoy comments в качестве бесплатной системы построения сообщества пользователей сайта . Это не система комментирования в традиционном виде, а виджет чата, в котором могут общаться читатели. Процесс общения игрофицирован с помощью системы значков и рейтингов.

    Как установить Tolstoy comments на сайт

    После регистрации на платформе система предложит вставить код виджета на все страницы сайта.


    Если все сделано верно, на сайте появится виджет комментариев.


    В панели управления на сайте Tolstoy comments настройте размеры виджета. Выберите подходящее время загрузки виджета. Остальные настройки можно не менять.



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

    Пользователи могут оценивать комментарии. А за активность система присваивает комментаторам значки.


    На каждой странице сайта виджет создает отдельный чат. Но список чатов доступен пользователям с любой страницы сайта по ссылке «Все чаты».

    Недостатки системы Tolstoy comments

    Главный недостаток – хранение комментариев на сервере Tolstoy comments, а не в базе данных сайта. Из-за этого пользовательский контент не индексируется. Разработчики планируют в будущем решить эту проблему.

    В обсуждения на сайте Tolstoy comments пользователи говорят, что виджет замедляет работу сайтов. На тестовой площадке такого эффекта я не заметил.


    Альтернативы универсальным системам

    Вместо универсальных кроссплатформенных решений некоторые владельцы сайтов устанавливают форму комментирования одной социальной сети. Обычно это Facebook или «Вконтакте». На некоторых ресурсах есть сразу две формы комментирования.

    Чтобы установить форму комментирования Facebook, воспользуйтесь

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

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


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

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

    $fields = array("author" => "

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

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

    " . __("Website") . "" . "

    ",);

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

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

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

    "

    " "

    " "

    "

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

    "

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

    " . __("Website") . ""

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

    $fields = array("author" => "

    ", "email" => "

    ", "url" => "

    ",);

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

    "comment_notes_before" => "

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

    ",

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

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