antispambot — функция для защиты email адресов на блоге от спам-ботов

Функция преобразует рандомные символы в емаил в 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. Основная причина заспамленности почтового ящика на мой взгляд — это указывать его при регистрации на сомнительных сайтах.

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • alex morozov: Ура, спасибо! Все-таки я разобрался ! Сделал:

  • alex morozov: Сделал Класс добаляется даже если поле пустое

  • Vladislav: Лучше бы посоветовали изящное решение имеющейся проблемы.

  • alex morozov: Не очень понял. Я добавляю метабокс через класс, почти как у вас. class Desc_Meta_Box { private $screens = array(...

  • Миша: Метод тыка хорош, но оснвоы нужно знать в любом случае. Рекомендую почитать это.