Защита от спама в WordPress без плагина


Защита от спама в WordPress

Защита от спама в WordPress — рано или поздно все блогеры задаются этим вопросом. Есть разные способы борьбы со спамом.Самый простой, но не самый лучший способ это установить палагин.

Вот парочка самых популярных:

Вместо этого я просто сделал эту защиту от спаса вручную — способ очень простой.

Способ заключается в том, что мы скрываем стандартное поле для ввода комментария ‘comment‘ и заменяем его на новое созданное  поле ‘real-comment‘. Для посетителей  все останется без изменений  они и не заметят разницы, а вот спам-скрипты при  попытке  заполнить стандартное поле с именем ‘comment‘ будут попадать на фильтр запрещающий им комментировать.

Необходимые данныеДля открытия - нажмите

1. Проверка на спам.

Начнем мы с добавления фильтра спама, у нас в форме комментария будет 2 поля. Одно скрытое — это стандартная форма ‘comment‘ и второе поле — это новое созданное нами поле. Добавляем функцию которая будет определять, если поле было заполнено комментатором — это видимое в шаблоне, то комментарий пропускается, а если скрытое, то публикация запрещается.

Для этого вставим такой код в functions.php:

2. Добавляем в шаблон новое поле для ввода комментария.

Существует два варианта как это можно сделать:

1. Если у Вы используете вывод формы комментария не через функцию comment_form() (полностью заменяет форму комментария). В этом случае редактируем файл comments.php шаблона, находим там что-то похожее на данный код:

и заменяем его на код:

2. Второй вариант, если в шаблоне для вывода формы комментариев Вы используете функцию comment_form(). Для добавления нового поля откройте файл шаблона functions.php и добавьте туда код:

На этом все, готово. У нас есть видимое поле для ввода комментария ‘real-comment‘ (можно использовать любое имя), а стандартное ‘comment‘ поле скрытое от посетителей. И есть функция которая фильтрует эти поля. Больше автоматический спам вас не побеспокоит.

Проверить работу  защиты от спама можно  на страничке  которую создал —  Kama

Не забываем оставлять свои комментарии без спама : )

 

 


Понравился пост, подпишись на обновления

Понравилась статья? Получай свежие статьи первым по e-mail

[newsletter_signup_form id=0]

50 раз(а) написали о “Защита от спама в WordPress без плагина

  1. Статья отличная. Сама этим вопросом занималась недавно, так как «Akismet» мне жутко не нравился, перепробовала много других плагинов и остановилась на «Antispam Bee».
    Мне у этого плагина сама идея понравилась: невидимое для пользователя поле-ловушка, которое заполняют боты, потому что действуют на уровне кода, да плюс еще идет проверка: из браузера ли заполнялась форма или нет, а так же сверяется IP комментатора и блога. И никаких капчей, утомительных для читателя.
    Но плагин есть плагин. Стараюсь их поменьше использовать и там где можно заменить кодом.
    Так что автору статьи ОГРОМНОЕ СПАСИБО! Прекрасная альтернатива «Antispam Bee» Изящное и легкое решение.
    Да и вообще отличный сайт, столько полезной информации. Добавила в закладки.
    Автору респект!!!

    Ответить
    • Спасибо Вам за отзыв! Стараемся делать сайт лучше. Так что все еще впереди. 😛

      Ответить
  2. Кстати отличное и простое решение для сайтов на wordpress, сам замучился был со спамом, но оказывается, что можно обойтись и без плагинов.

    Ответить
  3. Также использую эти два плагина на своем блоге, но вот от Akismeta хочу отказаться. Толку я считаю нет никакого от такого плагина, за которым все перепроверять приходится. Не для кого не секрет, что данный антиспам заносит в базу все подряд, как голодный монстр.

    Ответить
    • Советую использовать данную функцию и надежнее и свой блог облегчите от плагинов.

      Ответить
  4. Отличная статья , она мне как раз и была нужна.
    Спам наваливал на мой блог БЕСКОНЕЧНО.Но благодаря этому видео все обошлось , хоть и мучался 2 месяца. Нужно срочно скинуть этот сайт своим друзьям. Еще раз огромное спасибо за эту статью. Все было понятно и интересно.

    Ответить
    • Рад, что вам помог Артём. А что решили поделиться с друзьями сайтом очень благодарен. Ведь чем больше он будет востребован, тем больше будет мотивации создавать новые видеоуроки и заметки.

      Ответить
  5. Действительно, способ простой и эффективный, а самое главное, что он доступен для всех желающих защитить себя от спама!

    Ответить
    • Да метод хорошо и проверен временем. Советую всем!

      Ответить
  6. Я не сильна в php, поэтому вопрос: как именно указанная функция фильтрует поля?
    Нет ли возможности спамерам добавлять свой комментарий прям в базу?

    Ответить
  7. Кстати, форма проверки мне выдала надпись:
    «Forbidden
    You don’t have permission to access /wp-comments-post.php on this server.»

    Понятн — это значит, что спамер не пройдет.

    Но почему такая надпись, а не та, которую указали вы?

    или это связано с настройками хостинга?

    Ответить
  8. Игорь, подскажите, как узнать, какая функция используется для вывода комментариев. Ясно, что надо смотреть в comments.php, а что смотреть?

    Ответить
    • За вывод комментариев отвечает функция wp_list_comments . Именно ее значение и надо искать в comments.php.

      Ответить
  9. Игорь, а может быть такое, что функция вывода комментария выглядит по-другому? Или я — уже такой непробываемый «чайник», что не могу найти wp_list_comments? Вдоль и поперек излазила и comments.php, и functions.php.

    Наугад сделала у себя первый предложенный вами вариант. Впервые спама нет, но нет и других комментариев.

    Ответить
    • Не совсем понял зачем вы ищете функцию для вывода комментариев, может вам нужна функция для вывода формы комментариев. Это разные вещи.

      Ответить
  10. Игорь! Вы написали:»Добавляем в шаблон новое поле для ввода комментария. Существует два варианта как это можно сделать: 1. Если у Вы используете вывод формы комментария не через функцию comment_form()… 2. Второй вариант,если в шаблоне для вывода комментариев Вы используете функцию comment_form()». Вот я и хочу узнать, какая функция используется у меня.

    Ответить
    • Галина, как бы вам так ответить что бы Вы поняли. В уроке все описано что надо искать. Сначала посмотрите файл comments.php, что в нем искать написано в 1-ом варианте. Если это вариант Вам не подошел далее следует посмотреть файл functions.php, что ищем в нем написано в 2-ом варианте.

      Ответить
    • Галина, может быть Вам мой опыт поможет. В первый момент я подумала так же, как и Вы, что понятия не имею какой у меня там вывод формы через функцию или нет. Поэтому попробовала сначала второй вариант и добавила в шаблон функцию, т.е. просто скопировала туда код. Эффект был не совсем нужный: на простые комментарии тоже «спаму нет!» выдавало. Тогда в файле comments.php я поискала такую строчку и не нашла.
      Но посмотрев внимательней нашла вот такую:

      Т.е. нужно найти все, что между открывающим и закрывающим тегом textarea, как я понимаю. Я заменила все это на

      Но тоже ничего не заработало у меня. Тогда я внимательно пригляделась, чем отличается моя строчка, которую предположительно нужно было заменить и строчка Игоря, и заменила вот так:

      Т.е. у меня вот class= не было а cols=»45″ rows=»8″ aria-required=»true было. Короче говоря, я совсем не уверена была, что правильно делаю, но в итоге у меня, кажется всё заработало. За что еще раз Игорю сердечная благодарность.

      Ответить
      • ой. примеры строчек почему-то не показывает тут, но вроде как, и так должна быть понятна логика 😳

        Ответить
        • что бы работал отображался код надо использовать кнопку Код

          Ответить
  11. вообще-то рано обрадовалась, «спаму нет» и на мои простые коменты выдает. что-то не так делаю

    Ответить
  12. Кажется получилось! Нашла все отличия Вашей строки и моей и заменила в соответствии с ними. По крайней мере мои комментарии на сайт проходят, а на проверочной странице пишет «спаму нет». Поглядим как будет действовать на спамеров. Вот теперь действительно большое спасибо!

    Ответить
  13. 🙂 плагины все доверчиво отключила, жду чего будет 🙂

    Ответить
  14. За пару дней убедилась, всё работает как нельзя лучше. Чудо чудесное! Аж не верится. Еще раз примите сердечную благодарность!

    Ответить
    • Рад, что смог Вам помочь.

      Ответить
  15. Игорь, спасибо огромное за решение проблемы! На моем сайте стоял Akismet, но в последнее время он начал пропускать огромные по тексту комментарии, была сильная нагрузка на хостинг. Здорово, что можно обойтись без плагинов!

    Ответить
  16. Пробовал ставить, проверка работает, но и на все остальные нормальные комменты тоже пишет Спаму нет. В чем может быть проблема?

    Ответить
    • Я уже точно не помню у меня тоже такой косяк был. Это значит, что вы не правильно сделали. Исправить можно почитав внимательно инструкцию и сделать все сначала.

      Ответить
  17. Вот это супер темка. Возможность избавиться от спама в виде такого небольшого кода — здорово! У меня сделано по-другому и тоже без плагинов, но при обновлении WP надо все поправлять, а ваш код гораздо лучше получается. Главное все внимательно сделать, чтоб и хорошие комменты не попали под цензуру 😉

    Ответить
  18. А как эта функция отличает спам это или нормальный коммент?

    Ответить
    • Если Вы почитаете статью там все написано.

      Ответить
  19. А у меня после ввода руками комментария выдает ошибку. Пишет :

    Ошибка: пожалуйста, введите комментарий.

    Ответить
    • Читайте внимательнее инструкцию, все должно работать.

      Ответить
  20. У меня нет такой строчки <textarea… в comments.php

    Ответить
    • в статье описано 2 варианта вывода комментариев. попробуйте другой.

      Ответить
  21. Спасибо Игорь. Однозначно страницу в закладки. Я так понимаю что даже при обновлении WordPress не понадобится делать никакие изменения, потому как все было сделано в файлах шаблона?

    Ответить
    • Да, Вы правы с обновлением все останется.

      Ответить
  22. Игорь, а я только успела поставить первый код в functions.php и пропала моя админка. Зашла в этот файл через файлзиллу, чтобы код удалить, а его там и нет. Со вчерашнего вечера мой хостинг не может вернуть мне админку. Как вы думаете, почему это произошло?

    Ответить
  23. Игорь, у меня всё получилось. Спасибо большое!

    Ответить
  24. Нет, ерунда какая-то… Смайлы перестали работать и мои ответы на комментарии считает спамом. Это только у меня так или ещё кто столкнулся с такой проблемой? А идея — классная! Супер просто!

    Ответить
    • У меня тоже смайлы не работают 😥

      Ответить
  25. Игорь, здравствуйте!
    Помогите, пожалуйста, «чайнику». По 1 пункту все получилось отлично — «спаму нет!» пишет. Но по второму пункту (использовала 2-ой вариант)у меня получается два окошка для комментариев. Один, как я понимаю, должен быть скрыт. Но как это сделать я не понимаю.

    Ответить
    • Светлана попробуйте тогда первый вариант. Если не получится, то вам надо для ненужного поля для ввода текста присвоить свойства css

      Ответить
      • Игорь, здравствуйте!
        Ничего не получается. По первому варианту не могу найти что-то похожее на . Неужели я неисправимый «чайник» 😥 ?
        А в каком файле надо присвоить свойства css?

        Ответить
        • Светлана, в каждом блоге все делается по разному. Так что общих советов дать не могу.

          Ответить
  26. Спасибо, Игорь!
    Думаю, что придется оставить плагин.
    Сегодня опять и так, и этак, но ничего не получается.
    Всего Вам хорошего. У Вас очень замечательный блог, я еще не раз сюда вернусь.

    Ответить
  27. Игорь, здравствуйте. Я купила тему Вордпресс у Ксаны и в описании к теме написано, что метод защиты от спама использован Ваш. Работает просто супер, спасибо. За неделю, что стоит у меня тема, ни одного спам комментария не проскочило, хотя раньше, хоть у меня и стоял плагин доходило до 150 спама за два дня.
    Один вопрос: смайлики он воспринимать не хочет. Пишет «Спаму нет!». Можно ли это как то исправить?

    Ответить
    • Ольга, здравствуйте!

      Даже не знаю почему у Вас так, у меня на этом сайте давно и всё работает 😉
      Видать что-то где-то конфликтует.

      Ответить
  28. Большое вам человеческое спасибо!

    Проверила работу защиты от спама — все получилось, но к сожалению, так же перестали работать смайлы, пришлось удалять, жаль.

    Ответить

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.