Intereting Posts
WordPress с композитором, как обрабатывать обновления? Все, что я могу добавить в functions.php, чтобы текстовые виджеты принимали PHP? Как применить класс к пользовательским пунктам меню на основе пользовательских ролей Установка WordPress не завершается на сервере WAMP Пользовательский отдельный Single.php Создать (показан) миниатюру для публикации? Поймать ошибки 404 в вложенных установках Массовый плагин для отправки по электронной почте заданных ролей пользователя Вместо изображений появляется подозрительная мессаж paginate_links () выводит дополнительные пустые страницы в пользовательском цикле «Тема без sidebar.php устарела» Как запустить файл .php, расположенный в корневой папке моего сайта? Ответы, не связанные с потоком, со ссылкой на исходный комментарий Индивидуальная длина входной записи rss для категорий? Есть ли плагин для записи параметров запроса для страницы (для отслеживания клиентов)?

Ограничение действия в комментарии по IP

Я пытаюсь установить что-то, что может быть очень просто (но я никогда не делал этого раньше):

add_filter('pre_comment_user_ip', 'limit_commentator'); function limit_commentator( $comment ) { $comment_field_value = get_comment_meta( $comment->comment_ID, 'some_custom_field', true ); //my code } 

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

Возникает еще один вопрос: действительно ли стоит ограничивать IP? Я подумывал о лимите на ежедневной основе. Что Вы думаете об этом?

Solutions Collecting From Web of "Ограничение действия в комментарии по IP"

Этот крючок этого не сделает. Это фильтр. Вы можете изменить данные IP, но если вы не захотите убить ( die; or exit; или wp_die() ) весь скрипт, вы не сможете остановить публикацию комментариев. Я тестировал, перехватывая return false; к фильтру. Ничего.

Вы можете убить подачу комментариев, подключив return false; до pre_comment_approved хотя у вас есть данные IP во втором параметре.

 add_filter('pre_comment_approved', 'limit_commentator', 1, 2); function limit_commentator( $approved, $commentdata ) { var_dump($approved,$commentdata); die; } 

Вы можете проверить $wpdb->comments для этого IP (в столбце comment_author_IP ) и вернуть false, если вы получите совпадение. Это должно быть легко, но я бы этого не сделал. Многие жилые интернет-соединения имеют один и тот же внешний IP-адрес. Если вы ограничены по IP, вы можете ограничить комментарии по одному для каждого района. Кроме того, меняются домашние IP-адреса. Это ненадежно.

Ограничение скорости (в день / час) на основе IP является гораздо лучшей идеей только потому, что шансы в вашу пользу, и реализация будет очень похожа.