Как защитить адрес электронной почты от спам-ботов на WordPress используя шорткод

Опубликовано: 12 ноября 2017
Раздел(ы): WordPress
Просмотры: 1657
Комментарии: 0

Базы данных электронных рассылок пополняются в том числе и благодаря работе спам-ботов.

Ранее я уже писал как скрыть email адрес у себя на сайте от спам-ботов — https://moonback.ru/page/css-email-protect. В этой же статье я расскажу как спрятать email от спам-ботов на WordPress и использовать шорткод (shortcode) для вставки в содержимое страниц и постов.

Спам-бот — это специализированное программное обеспечение, которое индексирует сайты с целью поиска адресов электронной почты.

Преобразование email адреса в HTML сущности

Для маскировки адресов электронной почты, чтобы запутать спам-ботов будем менять символы на их коды (HTML сущности).

Для преобразования символов в их коды в WordPress есть функция antispambot(). Чтобы ею можно было пользоваться внутри страниц и записей нужно добавить шорткод и назначим ему специальную функцию.

Нижеследующий фрагмент кода на PHP необходимо добавить в файл function.php:

/**
 * Hide email from Spam Bots using a shortcode.
 *
 * @param array  $atts    Shortcode attributes. Not used.
 * @param string $content The shortcode content. Should be an email address.
 *
 * @return string The obfuscated email address. 
 */
function wpcodex_hide_email_shortcode( $atts , $content = null ) {
    if ( ! is_email( $content ) ) {
        return;
    }

    return '<a href="mailto:' . antispambot( $content ) . '">' . antispambot( $content ) . '</a>';
}
add_shortcode( 'email', 'wpcodex_hide_email_shortcode' );

Как использовать

Для того, чтобы замаскировать email адрес внутри страницы используйте шорткод [email]:

[email]mymail@domainname.tld[/email]

Результат

Результатом работы функции будем набор оригинальных символов перемешанных с HTML сущностями. В браузере все будет отображаться корректно, а у спам-бота должны возникнуть большие проблемы с распознованием адреса электронной почты, так как он «увидит» примерно следующее:

<a href="mailto:mail@rassadnikov.ru">mail@rassadnikov.ru</a>

WordPress функция antispambot() при каждом запуске выдает разную последовательность символов и сущностей.

Благодарности

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

  1. https://codex.wordpress.org/Function_Reference/antispambot

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

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

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных", на условиях и для целей определенных политикой конфиденциальности сайта.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

© Юрий Рассадников, 2011 - 2021
uptime узнать
Домен : reg.ru
Хостинг : adman.com
SQL - 9 | 0,086 сек. | 11.55 МБ