Skip to main content

Как убрать поле сайт и e-mail в комментариях WordPress

Как убрать поле сайт и e-mail в комментариях WordPress

В этой статье рассмотрим как убрать поля e-mail и сайт (URL) в форме комментариев, сделать необязательным поле e-mail и убрать надпись «Ваш e-mail не будет опубликован» без плагинов.

Для чего убирать эти поля? Для того, чтобы пользователям было проще добавлять комментарии и снизить количество СПАМа.

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

Убираем поля e-mail и сайт из формы комментариев

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

<?
function remove_comment_fields($fields) { 
	unset($fields['url']); // Удаляем URL
	unset($fields['email']); // Удаляем E-mail
	return $fields; 
} 
add_filter('comment_form_default_fields', 'remove_comment_fields');

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

Сделать поле e-mail необязательным

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

Но теперь и поле имя станет необязательным, если пользователь оставит поле пустым, то вместо имени будет надпись Аноним. Если вы хотите оставить поле имя обязательным, то рассмотрим далее как это сделать.

Сделать поле имя обязательным, а e-mail нет

Добавляем все в том же файле functions.php следующий код:

<?
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' );

Теперь если имя не заполнено, пользователю будет выводится ошибка.

Убираем надпись «Ваш e-mail не будет опубликован»

Для этого в файле functions.php пишем ещё несколько строк кода:

<?
function my_comments_form($default) {
     $default['comment_notes_before'] = '';
     return $default;
 } 
 add_filter('comment_form_defaults','my_comments_form',999);

Если понадобится изменить остальные поля, то уже можно воспользоваться плагином, таким как например Loco Translate.

Похожие записи
Как создать виджет WordPress

Виджеты используются для добавления контента на страницу WordPress без изменения шаблонов тем. Боковая панель является... Читать далее

Оптимизация WordPress

Ваш сайт WordPress может быть медленным по многим различным причинам: забитая база данных, работающая в... Читать далее

Отправка сообщений в Telegram из Contact Form 7

Мы уже рассматривали как отправлять сообщения в телеграмм из обычного PHP скрипта и заказы из... Читать далее

Получить параметры сайта с помощью функции get_bloginfo() WordPress

Сегодня мы поговорим об одной нужной функции WordPress get_bloginfo(), которая возвращает параметры сайта и довольно... Читать далее

Что такое шорткод и как его использовать

Шорткоды - это PHP функции, которые можно вставлять в текст записи, страницы или другой таксономии... Читать далее

Contact Form 7 reCAPTCHA. Установка и настройка

Защитить от спама свои контактные формы на сайте WordPress, созданные в плагине Contact Form 7... Читать далее

Добавить комментарий

*

code