Защита от спама в WordPress без плагинов
Почти 3 года назад я опубликовал статью о "защите от спама" путем подмены полей. Этот метод и сейчас работает идеально, Akismet вылавливает лишь штук 5 ручных спамных комментариев в месяц...
Понравился пост? Подпишись на обновления по RSS или Twitter !
#1,
Интересный метод.
Что мешает злоумышленнику модернизировать бота и проверять имя поля по маске?
Например из формы получить все поля и в поле которое содержит слово* писать комментарий...
Это я к тому что переименовывать нужно во что то непотребное :)
#2,
да ничего не мешает ))
только вот блогов на wordpress без защиты миллионы, а данным методом подмены полей пользуются только тысячи, как и антиспам-плагинами. поэтому никто из скриптописателей даже не замарачивается насчет того, чтобы писать обходные пути.
это уже проверено, 3 года без автоматического спама ))
#3,
Ых жаль что с каждым обновление надо заново все редактировать. Плагин бы сделать :)
#4,
вы прочитали, что я написал то в статье? один раз сделали - больше ничего делать не надо при выходе новых версий wordpress.
#5,
спасибо за отличную идею и реализацию!
#6,
Хроме 11 кажет касяк с менюхой сайта. прувы в аттаче 1.rpif.net/2.jpg
за статью спасибо, только в моём шаблоне так наворочено со стилями, что не получилось заменить по-человечески :(
#7,
это ваш локальный глюк - проверяю в хроме 11.0.696.68 - все в порядке.
всегда можно воспользоваться антиспам-плагинами, но я очень не люблю заставлять людей вводить капчу.
а метод хорош тем, что комменты, попавшие в спам по ошибке легко вытащить обратно. вот, кстати, ваш коммент попал в спам, akismet посчитал его плохим. видимо из-за ссылки. и вытащить ваш коммент из спама оказалось легко - так как он единственный попал в спам за последние 2 недели ))
#8,
есть же плагины-невидимки: bee-antispam, kama-antispam
они не требуют ввода капчи.
как работает кама не знаю (хотя у меня она стоит)
но bee, вроде как прячет от машин поле ввода комментария
#9,
вот ссылка на kama:
http://wp-kama.ru/id_95/plagin-dlya-blokirovki-spama-v-kommentariyah-dlya-wordpress.html
#10,
bee работает абсолютно также, как и этот хак. он прячет реальное поле для ввода комментирования, подсовывая скриптам скрытое и на основании этого определяет спам.
просто не вижу смысла ставить плагин, когда можно воспользоваться хаком, который делается за 10 мин и забывается навсегда.
#11,
Отличный метод...нужно испробовать, хотя вскоре спамеры и это догадаются обойти)
#12,
3 года не догадывались, а тут вдруг догадаются?
#13,
Хак хороший, сам юзаю, спама ноль!
#14,
дополнительное поле штука безусловно полезная, только вот если кто использует плагины для форматирования текста комментаторами, то с некоторыми из них могут возникнуть проблемы, бо подставлять теги они будут как раз в поле для спама :)
поскольку ориентируются на
и соответственно ищут именно это поле, как например Comment Form Quicktags
#15,
Друзья. Вы параноики! Я установил плагин подобный и спама нет, а вы чистите руками! :-P
#16,
у меня тут стоят два плагина для комментов - предпросмотр и форматирование. в каждом достаточно поменять вхождения "comment" на свое поле "real-comment" и никаких проблем. с учетом того, что плагины не обновлялись уже года 3 - я про их правку уже и думать забыл, один раз сделал и все.
#17,
зачем использовать плагин, когда можно точно самое сделать за 10 минут кодом? всем известно, что вордпресс сам по себе прожорливый движок, навешивать на него совершенно ненужные плагины мне кажется излишним. я постоянно тестирую кучу плагинов и прекрасно знаю, что некоторые могут отъедать у сервера по 5-10мб памяти.
#18,
Воспользовался вашим методом подмены полей, но возникли проблемы с плагином Comment Form Quicktags (скачивал по ссылке на вашем блоге). В самом плагине поменял в строке 140 значение (\'comment\') на своё. Это частично решило проблему, но функция цитирования по-прежнему выводит цитату в основное поле "comment". Как её заставить работать на новое поле?
#19,
Дмитрий там надо подправить всего одну строчку в файле comment-form-quicktags.php
заменить на
#20,
Я тоже когда-то пришел к решению использовать functions.php, ибо надоело после каждого апдейта править файлы движка. Только на своем сайте я защиту от спама реализовал слегка по-другому, просто добавил чекбокс "Я не робот" и все. За год жизни сайта был один единственный спамный коммент, да и тот, похоже, ручками вводили
#21,
Можно усложнить форму с помощью JS. Сделать появление полей на JS. Почти все боты не умеют его обрабатывать. Конечно 1-3% посетителей так же приходят с отключенными JS. Или, просто выше предложенный чекбокс "я не бот" сделать на JS.
#22,
Здравствуйте, а как удалить имя админа во всех комментариях и над публикуемыми статьями в WordPress?
#23,
Нихххрена не получается!
wp 3 версия.
Я так понимаю после вставки кода в functions.php должно появиться новое поле, у меня ничего не появляется.
Убрать родное поле получается только так: #commentform{display: none;} и все... писать коменты просто некуда
к тому же я добавляю id="real-comment" правило для него нужно писать или как?
Может не получиться из за особенностей темы или я просто туплю?
#24,
Большое спасибо! А то спама и так много, а иногда еще на меня "атаки" совершаются(( по 400-500 спамных комментов за ночь.. причем без единой ссылки, просто какие-то предложения на английском.
Сделал как написано в статье, протестировал - вроде работает. Надеюсь поможет мне)
#25,
Спасибо большое, Александр!
Слышал о данном методе, вбил в Яндекс и в первой строчке ваш блог.
Все заработало с первого раза, даже не думал что это так просто сделать, если знаешь как :)))
Еще раз благодарю, очень полезный пост, а то уже замучили спамеры.
#26,
Спасибо, стоит Akismet, со временем спама увеличилось, тоже надоело выискивать.
#27,
После обновления на WordPress 3.3 отчего то не появляется новое свое поле для комментариев. Какие варианты?
#28,
За 2 месяца ни одного спам комментария. Респект автору!
#29,
не получается в css спрятать первое поле. подскажите пожалуйста
...
#30,
что именно не получается, подробнее пожалуйста.
#31,
разобрался, написал
.smo {display: none;}
#32,
Давно искал решение проблемы со спамом без использования плагинов. Они так увеличивают нагрузку и снижают скорость загрузки. Пора приниматься за реализацию. Спасибо.
#33,
Отлично! Все работает! Спасибо.
#34,
Огромное спасибо, получилось не сразу, но теперь работает как надо!
#35,
Все гениальное, просто! Сколько способов перепробовал в борьбе со спамом, везде есть какой-то изъян. Данный же способ оригинален, минималистичен и не требует от пользователя вводить непонятные символы с картинки...просто блеск! Элементарно-гениальное решение проблемы! Благодарю! =)
#36,
Как-то давно слышала про такой способ, долго руки не доходили. но когда спам замучил - по 200-500 новых комментариев за несколько дней - поставила на всех своих сайтах. МегаСпасибо! теперь всякие "девочки в спб" и прочая муть не пройдет!
#37,
у всех работает на 3.3.1 ? если есть проблемы - пишите, обязательно разберусь.
#38,
заморачивалась поиском капчи и наткнулась на этот пост.
Благодарю, использую - радуюсь! и плагинами не надо отяжелять!
#39,
да, кстати, на 3.3.1 работает, только все-таки лучше не -1000px,а display:nonе,а то на IE-7 хрень тогда отображает =)
#40,
какую? проверил сейчас на IE7 - все отлично видно. и в IE6 тоже.
но вообще это вопрос не принципиальный.
#41,
проверил на теме twentyeleven - свое поле появляется, никаких проблем не возникает.
#42,
Не впервый раз удивляюсь движку wp. почти все задачи можно сделать и без плагинов.
Код встал на 3.1.2 как влитой)
Спс за статью.
#43,
За скрипт большое спасибо. Хоелось бы написать не о достоинствах скрипта и как он мне помог, а о том с какого момента у меня начал появлять спам в коментариях. Причина на мой взгляд одна, яндекс. Блог проиндексированный в гугле никакого спама неимел, как только мой сайт проиндекировал яндекс, а это было видно в "яндекс-вебмастер" мой блог сразу стал заваливаться спамом.
#44,
причина в том, что базы спам-скриптов собирают, парся выдачу или яндекса или гугла. ваш сайт попал в индекс - добро пожаловать в базы спам-скриптов.
#45,
А можно ли подобным образом не заменить, а добавить новое поле в блок комментариев к постам?
#46,
в блок добавления комментария или в блок вывода комментария? в блок добавления коммента добавить легко, а вот в блок вывода фиг - надо переписывать функцию wp_list_comments на использование своей функции в functions.php - в кодексе это описано.
#47,
А можно ссылку где об этом можно почитать?
#48,
ну например тут или тут. а вообще поиском по "comment_form_defaults", там много статей по поводу этого фильтра.
#49,
Лучше поздно чем никогда ).
Спасибо за ссылки, в свою очередь тоже хочу поделиться вдруг кому еще интересно.
http://wp.smashingmagazine.com/2012/05/08/adding-custom-fields-in-wordpress-comment-form/
Тут весьма подробно расписан процесс создания плагина который добавляет custom поля в блок комментариев. При чем с простановкой рейтинга статей. Сайт на английском, но вобщем-то все понятно. К тому же после приведенного кода есть возможность скачать сам плагин.
Удачи в разработках!
#50,
При попытке добавить комментарий выводит "comment can not be empty" В чём проблема, как исправить?
#51,
внимательно повторите все шаги по установке этого хака. такая ошибка (пустой комментарий) может возникнуть, если вы не сделали второй части хака, например.
хак точно рабочий, и работает на любой версии вордпресс. причем проверено это на сотне сайтов.
#52,
у меня WordPress 3.4.1. тема - gracia.
комменты у меня вроде выводятся старым способом, так как в functions.php нашёл строчку:
заменил её на
в css дописал -
Второе поле скрылось как и положено. Но при попытке добавить комментарий пишет что то типа - введите текст комментария. То есть видимо принимает комменты только та форма которая скрылась. Подскажите чём может быть проблема?
#53,
вы в functions.php шаблона прописали код:
потому что именно в этом коде идет проверка на заполненное поле 'comment' и если оно не заполнено (значит не автоспам), то данные из real-comment присваиваются обратно в comment. раз у вас пишет, что комментарий не заполнен - то значит этот код не срабатывает. а вот по какой причине смотрите сами.
#54,
Код прописан. Когда отключаю плагин "древовидных комментариев: WordPress Thread Comment" всё работает. Хотя на других сайтах, всё работает нормально.
#55,
ну естественно оно работать не будет.
надо и в плагине менять comment на real-comment.
как, собственно, в любых других плагинах, которые работают с комментариями.
хотя объясните - зачем вам плагин древовидных комментов, когда вордпресс ввел их поддержку еще несколько лет назад?
#56,
Подскажите, как активировать средствами вордпресс?
#57,
в настройках комментариев в админке.
правда, поддержку древовидных комментов должна поддерживать тема, а ваша, судя по всему, их не поддерживает.
что, впрочем, не мешает заставить ее поддерживать - заменой старой функции вывода комментов на новую.
#58,
в functions.php я ничего не прописывал, так как выполнял только действия по пункту 1. вашего руководства, как для старого кода вывода комментариев. сейчас попробую всё проделать снова + допишу в functions.php указанный вами код.
потом отпишусь о результате.
ещё хотел спросить правильно ли я заменил код на новый в comments.php, о чём написал в прошлом сообщении.?
правда я там перепутал comments.php с functions.php, не обращайте внимания.
p.s. тут в комменты ещё какой то Asif влез, это не я.
#59,
что для старой функции - что для новой - прописать код в functions.php надо для обоих вариантов.
код у вас выглядит рабочим, но со стороны сложно судить, проверяйте лично.
#60,
ясно. просто у вас так написано, что для тех у кого старая функция вывода - нужно выполнить пункт 1, у кого новая - пункт 2 (по крайней мере я так понял сначала).
в общем добавил код в functions.php и теперь всё нормально - комменты вручную проходят, спама нет. спасибо вам огромное.
не могли бы вы уточнить порядок изменения кода для тех у кого новая функция вывода комментов? (хочу проделать то же самое на другом своём сайте, у него кажется нет старой функции в comments.php)
#61,
с пункта 2 до конца статьи.
#62,
Всё ясно, спасибо.
#63,
после попытки выполнить все по инструкциям у меня стала выскакивать вот это Parse error: syntax error, unexpected '/' in /sata2/home/users/colmoda/www/www.colmoda.ru/wp-content/themes/A_La_Mode/functions.php on line 144
откат на сохраненное ранее содержимое не дал результата... при замене на чистые файлы бьет Fatal error: Call to undefined function add_filter() in /sata2/home/users/colmoda/www/www.colmoda.ru/wp-includes/functions.php on line 22
и что теперь делать?
#64,
сначала вы вставили код неправильно, разбив какую-о другую функцию в functions.php, а затем что-то намудрили с кодом в файле /wp-includes/functions.php - это файл движка, его трогать нельзя. все изменения делаются только через файл wp_content/themes/папка_темы/functions.php, это совершенно разные файлы, хоть и с одинаковым названием.
#65,
есть какие нибудь пути к спасению ситуации?
#66,
уф...
все, проблема решена!
еще раз через сервер сохранил файл с кодом движка, и перекачал чистые файлы темы.
#67,
Я сделал на своём сайте подмену полей, всё работает на ура. Спама нет. Спасибо.
Однако появилась одна проблема связанная с плагином подписки на комментарии Subscribe To Comments. Сегодня установил этот плагин, активировал, настроил, но кнопку подписки на комментарии так и не увидел. Может быть это как то связано с тем что я подменил поля ввода комментариев? Может быть кнопка выводится под дефолтной формой комментирования которая теперь не видна? Как с этим бороться?
#68,
так эта кнопка вызывается вручную через редактирование comments.php шаблона, автоматически она не вставляется. сейчас посмотрел тут у себя на сайте - в плагине нигде у меня не заменено имя поля для ввода комментария, работает и так. код для вставки подписки должен быть типа такого:
#69,
Спасибо, Александр!
У меня все получилось сделать, пока спам не достает (до прочтения Вашего поста упарился от нападков спамеров Facebook).
Отличный блог у Вас! Добавил себе в "лучшее".
#70,
А если в шаблоне прописана функция (comment_form), что делать в этом случае?
#71,
А вставлять код в functions.php можно в любом месте? Или в конце/начале?
#72,
в любом, но так чтобы не разбить другие функции в этом файле. а то некоторые запихивают код прямо посередине другой функции, а потом удивляются почему блог открываться перестал.
#73,
пункт второй в статье, специально для вас написан.
#74,
Спасибо!! Наконец то нормальный антиспам способ, а то пользованся math protector-ом а он жутко неудобный.
#75,
скажите, а поисковики не будут применять санкции за такие стили как -
"display: none;"
или
"position: absolute; left: -1000px;"
вроде же наказывают за скрытые элементы?
#76,
Спасибо, Александр!
У меня все получилось!!!
до прочтения Вашего поста упарился от нападков спамеров.
#77,
Спасибо большое за подсказки! Сама разберусь ли?.. Но приедет сын, попрошу настроить антиспам так, как советуете Вы.
Всего Вам доброго!
#78,
Много где читал, что поисковики не любят скрытый текст. Как они отнесутся к скрытым полям? Может быть, поле comment лучше вообще убрать, оставить только real-comment?
#79,
они не любят скрытый текст, тут же скрытого текста нет - просто поле ввода текста. в любом раскрывающемся меню есть скрытые элементы, за это не блочат.
#80,
Подскажите пожалуйста, как у вас устроена подмена полей для регистрации и авторизации?
#81,
да, собственно, также. только все подмены и проверки идут не через wordpress, а через плагин Themed Login Plugin.
#82,
Подскажите, пожалуйста, если знаете, а как работает PTM AJAX Comments? В том плане, что при такой замене на real-com, он перестает работать и комментарии не добавляются. В настройках плагина есть изменить id для textarea, но это не помогает. Может где-то еще что-то нужно поменять?
#83,
я не в курсе. плагин в репозитории не найден, так что посмотреть на него я не могу. если скинете ссылку, где его скачать - тогда возможно я вам помогу.
#84,
Спасибо, нашёл. Предыдущий пост можно удалить :) Очень радуюсь такому сайту. Вы продолжаете им заниматься? Новых публикаций хочется...
#85,
Добрый день! Почему-то данные размера окна указаны нормальные: rows="8" cols="45", но окно реально получилось меньшего размера: rows="3" cols="22". Не подскажете, где исправить?
#86,
Добавлю: окно можно растягивать, но по умолчанию изначально оно маленького размера. Наверняка, не все поймут, что прежде, чем написать коммент, надо его сначала растянуть... Да, и в каком месте можно прописать такие стили к окну, как у вас?
#87,
в исходном коде страницы у вас вообще не указаны ни колонки, ни ряды. проверяйте код внимательно.
в styles.css конечно, что-то типа:
#88,
Спасибо!)
#89,
А можно просто изменить стандартное поле real-comment и всё? Не скрывать и не добавлять новых полей для посетителей? Если боты ищут comment то они его не найдут и что тогда будет? Запостят в real-comment или нет?
#90,
вы по коду в functions.php посмотрите - там идет проверка на заполненность скрытого поля comment - если оно не заполнено, то оно заполняется уже тем содержимым, которое есть в real-comment. это такой хитрожопый хак, чтобы не возникло проблем с движком. типа для wordpress данный хак вообще невидим и поэтому нет проблем с совместимостью чего-либо.
#91,
Да, интересно. Попробую сам настроить антиспам !
#92,
Классная идея! Спасибо Вам, что поделились!
Ваши статьи - находка! Они спасают в сложных ситуациях.
Теперь Ваш блог у меня всегда открыт в браузере рядом с моим. )
#93,
Здравствуйте, а такой вот вопрос, такой ведь хак не работает на самой последней "WP", пишет ошибку при отправке комментария
"ERROR: please type a comment."
на wordpres-support - http://wordpress.org/support/topic/error-please-type-a-comment-2, написали, что дело в том, что должно обязательно быть - name="comment", а ведь тогда теряется смысл всей подмены!)
#94,
еще как работает.
изменения в functions.php внесли?
именно этот код не дает вордпрессу знать, что используется измененное поле для комментирования.
ну и конечно второй вопрос - плагинов для комментов никаких не стоит? а то ведь и в них надо изменения делать.
#95,
Здравствуйте!
Все сделал как описано в вашей статье, но прежнее поле для ввода комментария никуда не пропадает. В результате у меня на сайте 2 формы комментирования...Как это исправить?
#96,
я вижу у вас одну форму.
попробуйте сбросить кэш в браузере.
PS при выходе из сайта у вас вылазит попап, да еще со звуком. за такое веб-мастерам руки надо отрывать. ночью так вообще кошмар.
#97,
Да, спасибо. Похоже получилось. Спасибо! Подскажите, пожалуйста, а если я буду добавлять плагины для удобства комментирования, например, как у вас - цитирование, выделение шрифта и т.д. - эти плагины тоже нужно будет редактировать, чтобы данная схема снижения спама работала?
#98,
да. в большинстве плагинов достаточно в одном-двух местах поменять имя поля для комментирования.
#99,
У меня два языка на сайте на плагине qTranslator.
Сделал все, как у вас. Вначале после статьи отображалось два окна: русский и английский вариант,но проблема в том, что при вводе любого текста в области ваш комментарий на английском, хак его блокировал, как спам. В русском поле вводи, что хочешь, но я так понимаю, так и должно быть.
Потом осталось одно русское окно даже на английской версии.
Удалял для проверки стрчку из style вообще ничего не меняется.
Что то я не пойму, как все должно работать?
Под русским и английским я понимаю "оставьте комментарий" и "leave comment" соответственно
ЗЫ. А так спасибо за полезный сайт и особенно за то, что помогаете разобраться с проблемой, как я посмотрю.
#100,
вообще запутался
при строчке в style.css
http://img33.imageshack.us/img33/7047/sw6j.png
при отсутствии теперь тоже самое, только вообще ни в какое поле нельзя ввести коммент. Я так понимаю надо рыться в самом qTranslte?
#101,
дайте ссылку на ваш шаблон - попробую на тестовом сервере установить qTranslte с вашим шаблоном и разобраться в чем может быть проблема.
#102,
Flector, спасибо за отзывчивость
http://newwpthemes.com/themedemo/?wptheme=iTravel
#103,
так, тема не годится - вы упакуйте папку с шаблоном и киньте мне ее на rlector@gmail.com, тогда посмотрю. что-то я сразу не понял, что мне надо видеть какие и где вы сделали изменения в шаблоне.
#104,
Flector, спасибо.
Даже не знаю, стоит ли вам заморачиваться? Право неудобно.
#105,
ну а в чем проблема? смогу помочь вам - смогу помочь и другим, кто столкнется с такой же проблемой.
#106,
Спасибо за полезный скрипт, надо внедрить себе на блог, чтобы избавиться еще от одного плагина.
#107,
кажется перестало работать. у меня тоже было сделано по этой статье несколько лет было всё нормально никакого спама не было. несколько дней назад попёр спам. не подскажете в чём может быть причина?
#108,
уверены, что это комментарии, а не пингбэки с трэкбеками?
#109,
а как их отличить от обычных комментариев?
#110,
как минимум, у них нет заполненного поля имейла.
#111,
e-mail есть cool.emmi2011@yandex.ua но все сообщения одинаковые и один автор
#112,
может вручную спамит?
или свой собственный скрипт накатал?
просто попробуйте имя поля сменить.
#113,
да наверно вручную потому что вроде других сообщений не было. как сменить имя поля я не знаю. спасибо.
#114,
нужно сменить имя вновь созданного поля которое заполняют люди или старой формы которую мы скрыли?
#115,
нового. вместо "real-comment" пишите "new-comment".
#116,
А у меня ничего не получилось: сайт просто крякнул. Сначала писал что "спаму нет", хотя я вручную писала коммент. А потом, вообще ,писал, что статьи такой нет и статьи перестали открываться. Не туда я коды, видимо поставила. В статье не написано куда ставить "проверку на спам" и код в style.css Может уточните для чайников? Спасибо.
#117,
насколько я вижу по вашему сайту - все у вас правильно добавлено и все правильно работает. обновите кэш браузера (Ctrl+F5).
#118,
Спасибо за инфо, а то после обновы WP перестал работать прошлый способ =)
#119,
Спасибо за статью
#120,
В wordpress4 и новой теме в файле comments.php не могу найти ни «textarea» ни «comment_form».
Да и файла comments.php тоже нет есть comment.php
подскажите где искать?
#121,
дайте ссылку на вашу тему, я посмотрю. просто сейчас темы такие пошли, что нужные функции могут быть запрятаны в самых дебрях кода, надо лично смотреть. ну или вы можете поиском по файлам темы искать эти функции (в notepad++ есть такая опция = поиск по файлам).
#122,
поиском искал вроде. сайт вот - credit-ws.ru
#123,
ну у вас же там своя собственная тема - а мне нужно ее скачать, чтобы я мог посмотреть ее код. так по внешнему виду ничего сказать невозможно.
#124,
Попробовал у себя, спасибо, работает
#125,
У себя использую динамическую подмену.
Чтобы html код страницы без выполнения js выглядел обычным
#126,
тоже вариант.
правда, если в теме подгружается jquery.
#127,
Я обновился до wp 4.2.1. и отправка комментариев через созданное поле перестала работать.
Если убрать доп.поле и отправлять через обычный textarea - то всё ок.
Нужно как-то изменить код?
#128,
да вообще-то нет. у меня вот, например, версия 4.2.1 - и все работает. я так выборочно проверил еще несколько тем - тоже все работает.
у вас случайно тема не обновилась заодно с движком? а то может изменения затерлись нужные.
#129,
Тема не обновлялась.
Моя проблема связана с валидацией формы комментирования. Когда валидация появилась?)) как раз в 4.2.1? вообще размер исходного файла /wp-includes/comment-template.php подрос с последним обновлением. Я так и не понял.
Консоль отдаёт ошибку "An invalid form control with name='comment' is not focusable." Естественно форма с name='comment' спрятана за display:none; а отправлять я пытаюсь свою name='llgr-comment'.
Если в лоб к
добавить novalidate, тогда всё отлично отправляется. Как через functions.php добавить это novalidate я не придумал. Да и правильно ли так делать?
#130,
никогда. насколько я понимаю - это не движок проверяет форму, а браузер. точнее только Chrome.
повторить проблему у себя мне не удалось. но гугл говорит, что novalidate для form это вполне нормальное решение.
#131,
Я остановился на таком решении: проверку на спам оставил в functions.php, а вывод доп.поля перенес в comments.php темы:
То есть 2 поля подряд, первое дефолтное закрыто display:none; а во второе перенес атрибуты aria-required="true" required="required" в новое поле.
Вроде профит.
#132,
ну и правильно.
вообще, если comment_form вызывается с параметрами, то автоматическое добавление нового поля через код в functions.php может не работать или работать криво. поэтому вы сделали все абсолютно правильно.
#133,
Здравствуйте, Flector! Писал вам на почту по поводу, но, увы, нет ответа, может, в спам попало...
К сожалению, инструкции вашей статьи не смог применить к теме Rubine Lite - https://ru.wordpress.org/themes/rubine-lite/ Там как-то все запущено и моих (минимальных) знаний не хватает для реализации подмены полей. Плагины типа Antispam Bee не хотелось бы ставить, и так уже много всяких... Переход на новую тему затягивается, посодействуйте, пожалуйста, в решении проблемы, если это возможно.
Спасибо!
#134,
в comments.php замените код:
на
а сам код чуть-чуть измените на такой:
#135,
Flector, благодарю за ответ. В comments.php код заменил, в functions.php вставил "добавление своего поля" и "проверка на спам". В css добавления внес. Странное дело - на Денвере все как по маслу работает, а на рабочем сайте выскакивает окно "Пожалуйста, заполните это поле". (Firefox). И все, дальше ничего... В Chrome вообще ничего не происходит, даже этого окна нет... Плагины стоят одни и те же. Вот, репу чешу, не пойму...
#136,
кэш обновили?
#137,
Да, кэш обновлял неоднократно, и под админом пробовал откомментить, и как гость... безрезультатно.
#138,
я вчера смотрел ваш сайт, вроде нормально было. правда, я не пробовал комментировать. но вообще, код предельно прост, не понимаю, что у вас там может не так работать.
#139,
Flector, спасибо за содействие. Поставил сегодня Antispam Bee, поглядим, что дальше будет. Я особо-то не заморачиваюсь в таких случаях, тем более при наличии альтернативы.
Видел у вас статью о плагине Invisible Captcha. Вопрос вдогонку и немного не в тему: в паре с вышеупомянутым плагин Invisible Captcha - это взаимодополняющие, или наоборот, инструменты? Лишней не будет "невидимая каптча"? )
#140,
будет.
подобные плагины друг с другом не дружат.
если устанавливаете защиту, то только одну.
#141,
Здравствуйте! Очень классная и простая идея. Но у меня возникла проблема. Все сделал, как написано. Но когда пишу в поле real-comment определяет тоже как спам, также как и comment, когда открытым его делаю. Не понимаю в чем проблема. Пользуюсь темой preus.
#142,
поле "comment" при этом не заполняете надеюсь?
#143,
Здравствуйте.
Мне тоже настроили защиту от спама таким же образом. Но у меня возникла проблема. После обновления новой версии WordPress посетители не могут оставлять комментарии на блоге. Выдает: ОШИБКА: пожалуйста, введите комментарий.
После того, как погуглил я пришел к такому мнению - новая версия WordPress не адаптирована под эти изменения.
Как исправить ошибку. Сам я не смогу - не соображаю и так глубоко лезть в коды опасаюсь.
Прошу помощи. Подскажите, если не трудно, кто бы это мог сделать. Или идти на биржу фриланса?
#144,
в 4.4 изменили внутренние функции, теперь, чтобы этот хак работал надо использовать следующий код:
старый код, соответственно, из functions.php надо удалить.
#145,
если вешать на init, то wp super cache ломается
#146,
у меня его нет, поэтому я не знаю. с чего вдруг ломаться то должно?
#147,
У меня на WP 4.4.2 код из Вашего комментария от 28.01.2016 отрабатывает кривовато - комментарии появляются, но вместо страницы с уведомлением об отправке комментария на модерацию или его публикации появляется пустая страница wp-comments-post.php.
#148,
Вопрос снимается, я просто немного не так разместил код в файле functions.php, сделал в точности так, как написал автор, и все заработало. Спасибо за отличную статью!
#149,
Слушайте, а меня всегда интересовало, можно настроить время? Типа провел человек на сайте три минуты - окей, можешь добавлять комментарий.
#150,
Так же этот код не дает заходить в настройки WooCommerce. Может его можно как-то подправить?
#151,
Простите ламера, но у меня в результате вместо "Спаму нет!" и "Комментарий" выводятся ромбики. Что-то с кодировкой надо сделать?..
#152,
сохранять в кодировке "UTF8 без БОМ".
#153,
1) Flector а почему Вы не добавите новый код в статью?
2) Насколько корректно работает код через init? по комментариям выше смотрю у некоторых плагины "ломаются" и насколько долго этот код продержится, не слетит с обновлением WP? хочется поставить раз и навсегда и забыть...
#154,
времени нет.
у меня на всех сайтах работает и ничего не ломается. про вукомерс я не знаю, он у меня нигде на своих сайтах не стоит.
#155,
Статья обновлена - теперь хак корректно работает на WordPress 4.4 и выше и не конфликтует с WooCommerce и прочими плагинами.
#156,
Flector, а как быть, если тема старая и в ней нет comment_form? У вас раньше в статье был код для старых тем, теперь же нет. И что делать?
#157,
вручную добавлять новое поле в comments.php - если же вы пользовались этим хаком раньше, то вам достаточно лишь заменить код из пункта 2 и все - хак будет работать по-прежнему.
я не стал описывать хак для тем без comment_form(), так как прошло много лет уже и подобных тем сейчас найти практически невозможно.
#158,
Уважаемый Flector, скажите, пожалуйста, является ли код дружественным к мобильным версиям сайта?
Заранее спасибо за ответ.
#159,
а почему нет то?
#160,
Спасибо за полезную статью!
Я так думаю, этот же способ можно использовать и для защиты от спама, рассылаемого через стандартную контактную форму wordpress и форму заказа обратного звонка?
Подскажите пожалуйста, как и какие файлы wodpress для этого нужно править? А то имея такое железобетонное решение, отпадает необходимость ставить капчи или дополнительные плагины
#161,
в wordpress нет никаких стандартных контактных форм.
#162,
Хорошо)
#163,
Спасибо за статью, действительно, помогает избавиться от автоматического спама!
Изначально делал замену полей по похожей статье, было все нормально, пока я сам решил не оставить комментарий. В итоге не корректно работала форма ввода комментариев. Решил и справить и сделал по Вашей статье - все работает как нужно!
Благодарю за полезный материал!
#164,
К сожалению, перестает правильно работать comment-reply.js
#165,
А нет, прошу прощения. Поторопился. Все работает.
#166,
Сделал как указано, разлогинелся, решил попробовать добавить комментарий - сразу попадаю на wp-comments-post.php в title пишет "Ошибка" и надпись на странице в неправильной кодировке (не могу прочесть), только восклицательный знак стоит в конце.
#167,
любые правки файлов движка необходимо делать в кодировке UTF8 без БОМ. для этого воспользуйтесь редактором вроде Notepad++.
#168,
Здравствуйте! А не подскажите, как из скрытой области textarea убрать проверку на заполненность поля . Т.е. нужно исключить параметр REQUIRED.
#169,
здесь чуть поправленный код.
#170,
Интересно, хотелось бы услышать как работает этот способ от тех у кого данный способ на сайтах работает хотя бы несколько месяцев. Спам совсем не проходит или почти не проходит? Сколько спама проходит?
#171,
Алексей, у меня уже год стоит этот код. Спам не проходит вообще. То есть с момента установки - ни одного спам-сообщения. При этом никаких проблем с сохранением и публикацией обычных комментариев.
Уважаемый Flector, пользуясь случаем, выражаю Вам огромную благодарность за Ваше решение!
#172,
У меня спустя неделю после установки данного способа прорвался 1 спамный комментарий (явно автоспам). До этого каптча от гугла годами стояла и спама не было ни одного сообщения вообще. Но все равно способ пока выглядит вполне нормальным, рабочим. Пока не планирую возвращаться к гугл рекаптче.
#173,
В предыдущем комментарии я ошибся!!! Спамный комментарий как раз удивительным образом пробился через гугл каптчу. Просто не на тот сайт глянул. Много сайтов, запутался. Мои сообщения можно удалить. Это и предыдущее.
#174,
Коды действительно помогли, большое спасибо
#175,
Здравствуйте.
А при установке Вашего кода плагин так и остаётся (извините, если вопрос звучит глупо), но я пытаюсь максимально освободиться от плагинов, с чем и связан мой вопрос.
Потому как столкнулась с тем, что "сообщения" от хостера , о якобы, "подозрительных кодах" приходят достаточно регулярно.
Начинаю тотальную проверку.
Стоят две платные антивирусные программы (одна из них:Anti-Malware, в добавок ещё и утилита на сайте) , ЗНАЮ, что просто блокируют по "подозрению" на вирус или "подозрительный код", архивы, сайты, программы (если их не включить в "исключения", а сообщения поступают с завидной регулярностью.
Большое количество информации о том, что в плагинах много "дыр", не говоря уже о "вшитых ссылках" (сама от них избавлялась всяко-разно).
Не буду отнимать время на "описания", просто скажу о том, что трачу много времени на перепроверку (а вдруг?), и оказывается, что программы, утилиты, плагины друг дружку опознают, как потенциальную угрозу.
Вот основная причина, которой и продиктован вопрос.
Так оставлять плагин "антиспам" после УСТАНОВКИ ВАШЕГО КОДА, или можно убрать?
А если убрать, то как понять, что "спам не проскакивает"?
Ещё раз извините за "объёмный" комментарий и если мой вопрос не совсем "по теме" (кажется неуместным, глупым).
Заранее благодарна.
С уважением.
#176,
Здравствуйте!
Что-то не работает, все сделал как написано. Добавил оба кода в один и тот же файл functions.php в самой темы в тег (что вы кстати не написали). Выводит ошибку: "Спаму нет!".
Версия Вордпресса - 5.0.3.
Подскажите в чем проблема, реально спам достал.
#177,
что именно я не написал?
просто не понятно в чем у вас проблема.
#178,
Не написали, что надо размещать в теге
В чем проблема? Так я же написал, не работает ваш код. При отправке сообщения выдает "Спаму нет!". Значит не один комментарий не пройдет. Сейчас код на сайт не стоит.
#179,
он не может не работать.
ибо работает на десятках моих сайтов с 2008 года - и на этом сайте тоже работает, в чем вы можете и сами убедиться, посмотрев название поля для комментирования в исходном коде страницы.
если у вас что-то не работает - значит что-то вы делаете неправильно.
#180,
Что нет так? Два кода без изменений вставить в один и тот же файл - это вроде бы не сложно. Но по факту не работает. Можете сами убедиться, я установил кода на сайте. Вообще ни одно сообщение не проходит.
#181,
по факту я вижу, что на сайте у вас лишь одно поле с именем 'comment' и все.
сдается мне, что у вас очень старая тема, где форма комментирования собрана вручную в файле comments.php темы. поэтому вам там надо вручную задать второе поле с именем 'real-comment', а первому полю прописать в стилях display:none
#182,
Да, тема старенькая, но простенькая, чем она и нравится. Я не великий специалист, поэтому то что вы написали вводит меня в туман. Пожалуйста, подскажите куда и что именно вставить.
#183,
вы ссылку то на тему дайте - а то как не видя кода смогу что-то подсказать?
#184,
Хорошо. Точно не помню где скачивал. давно было, но вот тут на 100% такая же: wptheme.us/2008/08/asmoke/ Конечно я многое что изменил.
#185,
в comments.php замените строчку:
на
а в functions.php достаточно добавить код из 2 пункта.
#186,
Хм, все сделал, нормальные комментарии стали проходить, но вот при проверке (как вы написали удалить 'display:none;'), комментарий проходит.
#187,
не проходит.
только что проверил у вас на сайте.
#188,
Пропустил вот это.
Сейчас поправил, комментарий нормальны стал проходить. А как теперь проверить работу при спаме?
#189,
Кроме того, нарисовались 2 проблемки, 1-перестали быть активными при комментрировании смайлики. 2-стала неактивной панель из плагина WP Russian Quicktags (делал также по вашему совету: http://www.wordpressplugins.ru/komments/wp-comment-quicktags-plus.html).
С первой проблемой разобрался, а вот со второй не могу)))
Как-то так.
#190,
И даже с плагином этим справился, но как проверить работу ваше кода на спаме, если я вставил только вторую половину кода?
#191,
незаметно, не справились вы с ними.
поменяйте вхождение 'comment' на 'real-comment' в плагинах.
#192,
Вроде бы все проверил. Кнопки стали работать, как и смайлики. У меня кеширование стоит, может из-за этого вы ничего не видите.
Так как насчет проверки спама?
#193,
удалите display:none и проверяйте.
#194,
Так вы ж написали, что надо вставить только второй код, там нет такого?
#195,
зато оно есть в том коде, который я вам дал в комментариях.
#196,
Наконец-то!!!! Огромное спасибо, разобрался!!!
Последнее. Насколько я читал, поисковым системам не нравятся скрытые поля, за что могут понижать в выдаче. Ваше мнение насчет этого?
#197,
поисковым системам не нравится скрытый seo-текст, а не пустое поле, которое никак не влияет на ранжирование.
#198,
Здравствуйте.
Вот уже несколько дней (минимум с 10.03.2019 года) пытаюсь найти "свежую" информацию по использованию кода, вместо плагина "Akismet Anti-Spam", он у меня, похоже, "мёртвый", так как последнее "значение" (о количестве "обезвреженных спамах") неизменно на протяжении нескольких месяцев.
То есть, как "обезвредил" в августе 2017 года, 20 000, с копейками "спам комментариев", так больше никто и не пытался "закинуть" спам.
Тогда как, только с начала 2019 года на сайте зарегистрировалось более 1000 "пользователей" (зачем регистрируются, непонятно, но здорово утяжеляют сайт).
Ну, да ладно.
Суть, собственно, вот в чём.
Промучавшись с "добавлением", "удалением" кодов, нашла, бюолее, или менее "свежую" инфу, у всё сделала "по инструкции".
Но...
Проблема в том, что САМ комментарий (который "прошёл") не отображается!
Просто, чтобы ВАМ было понятно (могу излагать косноязычно, далеко не спец во всех этих "кодовых премудростях):
http://www.ourpravo.ru/
Самая первая статья(добавляла комментарий вчера, с целью проверки работы кода).
Отображается: 3 комментария.
Открываешь контент (запись), два комментария прочесть можно (текст виден), а добавленный вчера...
Текст не отображается даже у меня в админке...
Прочла у Вас здесь (в комментариях) подобную проблему - старенький шаблон (тема).
Но менять не хочется...
Удобная, делала "под себя" (меняла плагины на коды, на сайте только самые необходимые, без которых никак не обойтись - 11 штук.
Предыдущая установка кода (по-моему, уже пятая по счёту) без внесения изменения в файл "комментарии".
Только два варината (как у Вас) в "функции темы", и также без внесения изменения в файл "Стили"...
Но у вас дополнительно указывается на то, что нужно вносить код ещё и в "дисплей", а этого я нигде не встречала.
Хочу попробовать ВАШ вариант, но...
Уже и боязно...
Да и "мозги" кипят, уже обалдела и от количества проштудированной инфы, и от "советов ГУРУ".
Несколько раз пришлось сайт восстанавливать через хостера (установила плагин, сайт слетел, сутки мучилась сама, а потом пришлось обращаться в тех.поддержку).
Понятно, что это всё лирика...
Обратилась также с комментарием (инфа от января 2017 года), ответа не дождалась, вот...
Нашла Ваш ресурс, может быть Вы откликнитесь на мой "призыв".
Вижу, что у Вас совсем "свежие", значит Ваш ресурс "живой".
Заранее благодарна.
С уважением.
#199,
Добрый вечер (или, день).
Во всяком случае, у нас в Новосибирске, вечер.
Спешу выразить Вам глубокую признательность и огромное спасибо за Вашу статью.
Мой предыдущий комментарий был очень объёмным, и совершенно объяснимо, почему быстрого ответа ждать было, бы слишком самонадеянно.
Поэтому, я, вооружившись ВАШЕЙ статьёй, сначала всё проверила на техническом сайте (установила ту же тему, что и на "рабочем"сайте), а потом установила Ваши коды туда, где мне и нужно.
Всё работает.
Комментарии видны.
"Ошибку" (при проверке) тоже показывает.
Можно устанавливать и на другие сайты "со спокойным сердцем и чистой совестью".
Хотела было, подписаться на Ваши "обновления", но почему-то, выдало "ошибку.
Не беда.
Я сохранила адрес Вашего блога, буду сама заходить и смотреть, что у Вас новенького!
Успехов, Вам и процветания!
С уважением.
#200,
тогда хорошо, что все разрешилось.
это где?
#201,
Спасибо за Ваш ответ.
С уважением.
#202,
Круто )) большое спасибо за хак, очень клевый )) работает отлично.
#203,
Работает! Обрезало всю хрень. :)
Однако, вопрос - автоматический спам, по сути, никуда не делся - его присылают и "публикуют" всяческие боты. А куда он падает на хранение в Вордпрессе? Куда-то в базу данных он по любому заносится, и чистить базу от него нужно периодически... Как Вы сами от хлама избавляетесь?