Обфускация email-адресов в WordPress

Пусть это и выглядит печально, но порой публиковать свои почтовые адреса является опасным шагом, ибо это уничтожает вашу приватность (и вы в итоге будете получать кучу спама).

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

В WordPress имеется встроенная функция antispambot(). Вы можете передать любой почтовый адрес данной функции и получить тот же самый адрес, но закодированный в символьных объектах HTML. Это заметно усложняет его распознавание всяческими сборщиками, однако он по-прежнему нормально выводится конечным пользователям.

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

<?php // HIDE EMAILL ADDRESSES
 
function hide_email_from_scrapers( $atts , $content = null ) {
	if ( ! is_email( $content ) ) {
		return;
	}
 
	return '<a href="mailto:' . antispambot( $content, 1 ) . '">' . antispambot( $content, 1 ) . '</a>';
}
add_shortcode( 'hide_email', 'hide_email_from_scrapers' );

Использование [email protected] внутри шорткода нормально отображается во фронтэнде, однако если вы взглянете в код страницы (который читают поисковые роботы и разные сборщики контента), то вы увидите, что адрес представляет собой последовательность символьных объектов:

<a href="mailto:&#109;e&#64;%6d%79%73&#105;%74e&#46;c%6f%6d">%6d%65&#64;&#109;&#121;s%69te&#46;%63%6fm</a>

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

Источник: doitwithwp.com

Блог про WordPress
Комментарии: 6
  1. Кай

    Интересная и полезная функция. Правда иногда мне кажется, что проще сделать картинку с контактами, а не текстовую запись. Наверняка есть программы которые сканируют и дишифруют этот алгоритм записи?
    и ещё вопрос, что за термин — «Обфускация»?

    1. Игорь_Бут

      Функция действительно полезная. Картинку сделать можно, но если делать ее ссылкой (mailto), все равно адрес указывать нужно, а тут как раз эта фишка очень пригодится. Спасибо автору.

  2. Артём-Кочевник

    Недостаток картинки с контактами — в том, что человеку если он захочет с вами связаться, нужно будет вручную перенабирать ваш email. Что может совсем отбить желание связываться с вами )
    А email-ы закодированные с помощью метода antispambot (или другим программным образом) читатели по прежнему могут скопировать в буфер обмена или открыть в почтовике.

    «Обфускация» это запутывание кода.

  3. ADv

    А пример использования шорткода можно?

  4. Olunka

    Не совсем понятно как эту функцию использовать, в оригинальной статье была ссылка на создание функционального плагина, у вас же вопрос об этом плагине повисает в воздухе.
    Куда вставлять предложный код? ясно не в functions.php

    1. Дмитрий (автор)
Добавить комментарий

Получать новые комментарии по электронной почте.