eurobyte.ru - мощные сервера с Дата-центрами в Нидерландах и Москве. От 159 ₽/мес.

Фильтр отправки комментариев

Здравствуйте, подскажите пожалуйста! Убрала с формы комментариев поля email и websait, а для того чтобы поле имя было обязательным в сети нашла вот такой фильтр:

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

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

0
Гость
9 лет назад
  • 0
    campusboy 4934 www.youtube.com/c/wpplus

    Попробуйте вот так:

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

    Где 1 - это ваш ID. Тут может быть другое число, если Вы не первый админ на сайте.

    Kama 8.9 лет назад

    Тут гибче проверять право moderate_comments

    function custom_validate_comment_author() {
    	if ( ! current_user_can('moderate_comments') ) return;
    	...
    campusboy 8.9 лет назад

    К твоему коду добавились точечки и всё. Я к тому, вот читаем твой код: если пользователь НЕ имеет право модерировать комментарии, то функция ничего не делает. А тут как раз наоборот, если пользователь админ - он имеет право их редактировать, а значит его коммент обрабатывать этой функции не надо. Получается восклицательный знак не нужен.

    Kama 8.9 лет назад

    Ой, да я что-то совсем уже...

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация