E mail не будет опубликовано. Тонкая настройка формы комментирования. Что за письмо

Здравствуйте, дорогие читатели сайт ! В этой статье я покажу, как удалить поле Сайт и E-mail в стандартной форме комментариев блога на WordPress. Если вы спросите «Зачем?», значит вам это не особо надо. А кто ищет ответ на вопрос из заголовка, тот ясно понимает, что иногда скрытие этих полей бывает полезным для продвижения сайта. Попутно, раз уж мы будем редактировать форму комментирования, уберем строку «Можно использовать следующие HTML-теги и атрибуты», которая встречается в некоторых шаблонах Вордпресс под полем «Комментарий ».

Зачем скрывать поля ввода URL и E-mail и кому это надо?

Зачем: борьба со спамом, уменьшение количества исходящих ссылок и упрощение комментирования.

Кому надо: владельцам новостных и информационных проектов, сайтов компаний и интернет-магазинов. То есть тем, чьи посетители далеки от сайтостроения, а иногда и от интернета . Чем меньше данных надо заполнять в форме комментариев, тем активней их будут оставлять. Часто даже ввод E-mail будет лишним, так как люди не хотят лишний раз оставлять свои данные.

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

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

Тут есть и обратная сторона: увеличение количества внешних ссылок, пусть даже в nofollow, мешает продвижению сайта и не нравится ПС, особенно Google. Причем, когда на сайт комментатора идет несколько ссылок с одинаковым анкором с одной и той же страницы, то для поисковиков это тем более выглядит спамно.

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

Убираем поле Сайт (URL) и E-mail в форме комментариев WordPress

Зачем это надо вроде разобрались, теперь узнаем, как это сделать. Для примера возьмем тему Вордпресс Twenty Ten . Стандартная форма комментариев выглядит так:

Теперь по порядку отключим поля Сайт, E-mail и удалим лишний текст, как показано на скриншоте выше.

Отключаем поле Сайт

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

  1. с помощью плагинов (для новичков и ленивых);
  2. с помощью PHP-кода.

С помощью WP-плагинов

Можно использовать плагины disable-hide-comment-url или Hide-n-Disable-comment-url-field . На данный момент оба рабочие, но я советую второй, так как первый давно не обновлялся.

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

С помощью PHP-кода

Тут тоже есть два способа:

  1. редактирование файла comment-template.php из папки WordPress wp-includes ;
  2. изменение файла functions.php текущей темы.

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

Внимание! Перед внесением изменений сделайте резервную копию файла functions.php.

Скачиваем файл с хостинга по адресу /wp-content/themes/twentyten/functions.php и открываем в любом текстовом редакторе, например, Notepad++. В вашем случае выбирайте папку со своей темой. Можно редактировать прямо из админки блога, тогда заходим в меню “Внешний вид ” – “Редактор ” и справа выбираем файл functions.php .

Чтобы удалить поле ввода Сайт в форме комментариев, добавляем в конец открытого файла этот код:

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

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

Сохраняем изменения и заливаем файл с заменой обратно на хостинг. В результате поле Сайт будет удалено.

Удаляем поле E-mail

Делаем все то же самое, только дописываем в указанный выше код дополнительно такую строку: unset($fields["email"]);

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

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

Идем в админку (Настройки – Обсуждение ), убираем галочку с пункта «Автор комментария должен указать имя и e-mail » и сохраняем изменения.

Проверяем - работает. Однако теперь возникает ситуация, когда можно оставлять комментарии, не вводя Имя. Вместо него будет надпись Аноним. Если вас это не беспокоит, то можно на этом остановиться.

Чтобы сделать обязательным заполнение Имени, даже при отключении соответствующей галочки, добавляем еще один кусочек кода:

function custom_validate_comment_author() { if(empty($_POST["author"]) || (!preg_match("/[^\s]/", $_POST["author"]))) wp_die(__("Ошибка! Пожалуйста, заполните поле Имя")); } add_action("pre_comment_on_post", "custom_validate_comment_author");

Теперь при попытке оставить анонимный комментарий будет выводиться предупреждение:

Удаляем строку «Можно использовать следующие HTML-теги и атрибуты…»

Такой текст присутствует не во всех темах WordPress, но если у вас есть, то лучше его убрать. Почему, ведь так посетители могут оставлять в комментах ссылки, цитаты, коды, выделять ключевые слова жирным и т.д.? А оно вам надо? К тому же, этот блок текста не эстетичен и дублируется на всех страницах сайта (не только вашего), снижая их уникальность. Поэтому смело удаляем, прописав в functions.php следующий код:

function mytheme_init() { add_filter("comment_form_defaults" , "mytheme_comments_form_defaults" ) ; } add_action("after_setup_theme" , "mytheme_init" ) ; function mytheme_comments_form_defaults($default ) { unset ($default [ "comment_notes_after" ] ) ; return $default ; }

function mytheme_init() { add_filter("comment_form_defaults","mytheme_comments_form_defaults"); } add_action("after_setup_theme","mytheme_init"); function mytheme_comments_form_defaults($default) { unset($default["comment_notes_after"]); return $default; }

После всех наших трудов получаем такую форму комментариев на блоге:

Если удалили поле E-mail, то не забудьте убрать надписи с этим связанные. Например, «Ваш e-mail не будет опубликован », как на картинке выше. Для этого в корне сайта в папке wp-includes в файле comment-template.php найдите текст «Your email address will not be published » и удалите его. В случае с темой twentyten это работает. В других шаблонах может быть придется делать иначе. Только не забудьте сделать копии редактируемых файлов на всякий случай.

Теперь в файле functions.php все изменения будут выглядеть так:

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

Так как эти процедуры приходится иногда повторять при смене шаблона или создании нового сайта, то решил сделать себе такую шпаргалку. Надеюсь, пригодится и вам. Можете сохранить страничку в Закладки (Ctrl+D).

Всем привет сегодня хочу рассказать про ошибку при отправке письма:

пользователь отклонил ваше сообщение, отправленное на следующие адреса электронной почты, mail.domain.ru выдал это сообщение об ошибке: PTR hostname must resolve to IP.

Объяснение: ваш почтовый сервер не имеет PTR-записи в зоне обратного просмотра провайдера. Такая «обезличенность» смущает многие почтовые серверы. И они, с целью противодействия распространению спама и вредоносного ПО, блокируют письма с таких хостов.

Решение : к примеру, ваш Exchange опубликован наружу как mail.company.ru и имеет IP-адрес 10.20.30.40. Этот IP-адрес принадлежит вашему Интернет-провайдеру, соответственно DNS в этой сети управляется им же. Решение будет сугубо нетехническим. Пишете на адрес технической поддержки провайдера письмо следующего содержания:
Здравствуйте.
Прошу внести PTR-запись в зону обратного просмотра 30.2010.in-addr.arpa. IP-номер узла: 50. Имя узла: mail.company.ru. IP-адрес узла: 10.20.30.40.
Спасибо
-
Компания «Company.ru», договор № 5463321.

У меня например на работе провайдер р-телеком и у них есть сервис, который предоставят после письма описанного выше.

В нем сразу можно добавить нужную запись PTR в обратной зоне ваших внешних Ip

После добавления вашей провайдерскую запись лучше удалить.

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

Всем привет! один из самых полезных плагинов CMS WordPress. Сообщение об обнаруженных ошибках в конфигурации болталось достаточно давно, но все руки не доходили исправить.

Вот, сегодня обновил CMS WordPress до 5.0.1, ну и заодно решил исправить то, что не нравится плагину Contact Form 7.

На сайте формы две и обе выдавали аналогичные уведомления:

Жмакнул изменить и перешел в шаблон формы, далее вкладка «Письмо».

Во вкладке «Письмо» в самом верху висит уведомление: «Обнаружено 2 ошибки на данной панели вкладок». Смотрим ниже и видим сами ошибки.

Ошибку «Вероятно есть пустое поле» исправил, вернувшись во вкладку «Шаблон формы» и добавив пару звездочек. Было:

Сохраняем изменения. И ошибка «Вероятно есть пустое поле» пропала.

По ошибке «Электронный адрес отправителя не принадлежит домену сайта» в поле «От кого»: меняем на придуманный адрес. А в поле «Дополнительные заголовки» указываем Reply-To: .

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

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

  • поле URL
  • label к каждому полю
  • надпись "Ваш email не будет опубликован" (или как-то так)

Убрать поле URL из формы комментирования Wordpress

Существует несколько способов. Можно покопаться в, так сказать, ядре wordpress-а. Но в случае обновления CMS все внесенные изменения сбросятся, т.к. файлы будут перезаписаны. Оптимальный на мой взгляд вариант, добавить вот такую штучку в свой functions.php:

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

Убрать надпись "Ваш email не будет опубликован" над формой

Строчка примерно ~2235, найти нужный кусок можно по фразе comment_notes_before . По умолчанию для этого параметра и задан ненужный текст. Убираем его, оставляя значение пустым, т.е. в качестве значения будет просто ""

Убираем подпись для поля текста комментария

Там же в файле comment-template.php примерно на строке ~2218 ищем аргумент comment_form_default_fields . По умолчанию в его значение запиханы и

И label. Все это удаляем, оставляя в качестве значения "