Функция преобразует рандомные символы в емаил в HTML-сущности, тем самым делая его невидимым для ботов.
Что будет видеть бот:
true@truemisha.ru
Что будет видеть человек:
true@truemisha.ru
Мне кажется этот способ уж получше, чем вставлять вместо email картинку 🙂
Использование
<?php antispambot( $email, $mailto ) ?>
Параметры
$email
(строка) (обязательный параметр) адрес email
$mailto
(целое число) включает более хитрое кодирование. Если указать 1, то вывести email на странице в читаемом виде уже не удастся, зато можно с успехом использовать в ссылках типа <a href=”mailto:
по умолчанию — 0
<a href="mailto:<?php echo antispambot('true@truemisha.ru', 1) ?>"> <?php echo antispambot('true@truemisha.ru') ?> </a>
Вот что получится:
Возвращаемые значения
(строка) закодированный email адрес.
Каждый раз возвращает разные значения, так как преобразует случайно выбранные символы из email.
Использование внутри содержимого поста при помощи шорткода
Сначала вставим это в functions.php:
function true_email_shortcode( $atts, $content ){ return '<a href="mailto:'.antispambot($content, 1).'">'.antispambot($content).'</a>'; } add_shortcode( 'email', 'true_email_shortcode' );
Затем, при написании поста можно использовать этот шорткод:
[email]true@truemisha.ru[/email]
P.S. До этого я никогда не защищал свои email адреса подобным способом, использовал их в обычном виде на сайтах, но спама так и не заметил (возможно это Gmail так хорошо фильтрует, я хз).
P.P.S. Основная причина заспамленности почтового ящика на мой взгляд — это указывать его при регистрации на сомнительных сайтах.