Недавно на моем сайте обострились спам боты. Несмотря на наличие плагина Akismet, спам боты умудрялись оставлять комментарии в которых содержались десятки ссылок на другие сайты с сомнительным содержанием. Самое главное, что длина комментариев составляла много тысяч символов. Поразмыслив немного и посмотрев трезво на ситуацию, я понял что на моем сайте самые длинные комментарии составляют максимум 1500 - 2000 символов и то очень редко. Я решил помочь плагину по отсеву спама и ограничить максимальную длину комментария. Я решил установить значение в 4000 символов. В этом мне помогла не сложная функция, код которой расположен ниже.
add_filter( 'preprocess_comment', 'wpb_preprocess_comment' );
function wpb_preprocess_comment($comment) {
if ( strlen( $comment['comment_content'] ) > 4000 ) {
wp_die('Комментарий слишком длинный.');
}
if ( strlen( $comment['comment_content'] ) < 20 ) {
wp_die('Комментарий слишком короткий. Пожалуйста, напишите не менее 20 символов.');
}
return $comment;
}
Данный код нужно поместить в файл отвечающий за вывод пользовательских функций - functions.php. Если Вы работали с этим файлом и знаете как правильно в него добавлять код, то делайте это в удобном для Вас месте, если же Вы новичок и мало знакомы с PHP, то добавьте код в самый конец. Если там, в последней, именно в последней строке - есть закрывающий тег PHP - ?> то добавьте перед ним.
Как видно по коду, мы просто добавляем фильтр, которым и задаем наши ограничение по минимальной и максимальной длине комментария. Так что, если у Вас уже была какая-то функция по ограничению минимальной длины, можете заменить ее этой, новой функцией. Ну а теперь рассмотрим код по подробнее:
- В 3 строке задаем максимальное количество символов, в нашем случаи - 4000.
- В 5 строке текст, который увидит посетитель, если его комментарий превысит по количеству символов. В нашем случаи - Комментарий слишком длинный..
- Ну и для ограничения по минимальному количеству символов, в 7 строке задаем значение - 20.
- В 8 строке текст для комментатора, если его сообщение будет короче 20 символов - Комментарий слишком короткий. Пожалуйста, напишите не менее 20 символов.
Как видите сложного ничего нет. После добавления данного кода, вы избавите свой сайт от тех кто захочет наполнить его мусорными комментариями. Конечно же, Вы можете изменить ограничения - введя свои значения.
На этом все, спасибо за внимание. 🙂