Безопасность. Настройка. Интернет. Восстановление. Установка

Дневная добавить комментарий comment. Blogger: Настраиваем комментарии! Вставка картинки, видео

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

Псевдоним: Идеальное решение

Самый лучший способ разрешить анонимные комментарии в WordPress — поощрять пользователей использовать псевдонимы или никнеймы вместо реального имени.

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

Вы можете прописать такие варианты в политике комментариев и указать сквозную ссылку на них над формой комментариев.

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

Делаем поля Имя и Email необязательными

Следующий слой анонимности, который вы можете добавить, это сделать поля Имя и Email совершенно необязательными. Если пользователь отправляет только комментарий, без имени и почты, он пройдет. Давайте посмотрим на то, как сделать поля Имя и Email необязательными.

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

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

Function wpb_alter_comment_form_fields($fields) { // Модифицируем поле Имя и отображаем его не обязательным $fields["author"] = "

" . "" . __("Имя (Не обязательно)") . " " . ($req ? "*" : "") . "

"; // Модифицируем поле Email и отображаем его не обязательным $fields["email"] = ""; // Эта строка убирает поле Сайт из формы комментирования. $fields["url"] = ""; return $fields; } add_filter("comment_form_default_fields", "wpb_alter_comment_form_fields");

Этот код просто добавляет (Не обязательно) к полям Имя и Email в вашей форме комментариев. Также он убирает поле Сайт из нее. Если же вы хотите оставить «Сайт», то просто удалите соответствующие строки кода. Вот так будет выглядеть ваша форма комментирования:

Как полностью убрать поля Имя и Email из формы комментариев

Для тех пользователей, которые хотят полностью убрать поля Имя и Email из формы комментариев, вот небольшой кусочек кода, который необходимо вставить в файл functions.php вашей темы или в :

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

Если ваша форма отображает текст Your email address will not be published (Ваш email не будет опубликован), то вы можете скрыть ее путем редактирования файла comments.php темы. Найдите тег и замените ее следующим кодом:

Если вы не можете найти comment_form , то вы можете просто скрыть этот текст путем добавления следующего кода CSS в вашу тему либо в дочернюю, в файл style.css :

Comment-notes { display:none; }

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

Предупреждение об анонимных комментариях

Обратите внимание, что без обязательных полей имении почты ваша форма будет привлекать огромное количество спама. И пусть даже Akismet и Sucuri могут блокировать некоторые «плохие» IP, мы крайне рекомендуем добавить капчу, чтобы снизить поток спама.

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

В 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; ?>