antispambot

The timeline below displays how wordpress function antispambot has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.4

/**
 * Converts email addresses characters to HTML entities to block spam bots.
 *
 * @since 0.71
 *
 * @param string $email_address Email address.
 * @param int    $hex_encoding  Optional. Set to 1 to enable hex encoding.
 * @return string Converted email address.
 */
function antispambot($email_address, $hex_encoding = 0)
{
    $email_no_spam_address = '';
    for ($i = 0, $len = strlen($email_address); $i < $len; $i++) {
        $j = rand(0, 1 + $hex_encoding);
        if (0 === $j) {
            $email_no_spam_address .= '&#' . ord($email_address[$i]) . ';';
        } elseif (1 === $j) {
            $email_no_spam_address .= $email_address[$i];
        } elseif (2 === $j) {
            $email_no_spam_address .= '%' . zeroise(dechex(ord($email_address[$i])), 2);
        }
    }
    return str_replace('@', '&#64;', $email_no_spam_address);
}

WordPress Version: 5.4

/**
 * Converts email addresses characters to HTML entities to block spam bots.
 *
 * @since 0.71
 *
 * @param string $email_address Email address.
 * @param int    $hex_encoding  Optional. Set to 1 to enable hex encoding.
 * @return string Converted email address.
 */
function antispambot($email_address, $hex_encoding = 0)
{
    $email_no_spam_address = '';
    for ($i = 0, $len = strlen($email_address); $i < $len; $i++) {
        $j = rand(0, 1 + $hex_encoding);
        if (0 == $j) {
            $email_no_spam_address .= '&#' . ord($email_address[$i]) . ';';
        } elseif (1 == $j) {
            $email_no_spam_address .= $email_address[$i];
        } elseif (2 == $j) {
            $email_no_spam_address .= '%' . zeroise(dechex(ord($email_address[$i])), 2);
        }
    }
    return str_replace('@', '&#64;', $email_no_spam_address);
}

WordPress Version: 4.3

/**
 * Converts email addresses characters to HTML entities to block spam bots.
 *
 * @since 0.71
 *
 * @param string $email_address Email address.
 * @param int    $hex_encoding  Optional. Set to 1 to enable hex encoding.
 * @return string Converted email address.
 */
function antispambot($email_address, $hex_encoding = 0)
{
    $email_no_spam_address = '';
    for ($i = 0, $len = strlen($email_address); $i < $len; $i++) {
        $j = rand(0, 1 + $hex_encoding);
        if ($j == 0) {
            $email_no_spam_address .= '&#' . ord($email_address[$i]) . ';';
        } elseif ($j == 1) {
            $email_no_spam_address .= $email_address[$i];
        } elseif ($j == 2) {
            $email_no_spam_address .= '%' . zeroise(dechex(ord($email_address[$i])), 2);
        }
    }
    return str_replace('@', '&#64;', $email_no_spam_address);
}

WordPress Version: 4.2

/**
 * Converts email addresses characters to HTML entities to block spam bots.
 *
 * @since 0.71
 *
 * @param string $email_address Email address.
 * @param int $hex_encoding Optional. Set to 1 to enable hex encoding.
 * @return string Converted email address.
 */
function antispambot($email_address, $hex_encoding = 0)
{
    $email_no_spam_address = '';
    for ($i = 0, $len = strlen($email_address); $i < $len; $i++) {
        $j = rand(0, 1 + $hex_encoding);
        if ($j == 0) {
            $email_no_spam_address .= '&#' . ord($email_address[$i]) . ';';
        } elseif ($j == 1) {
            $email_no_spam_address .= $email_address[$i];
        } elseif ($j == 2) {
            $email_no_spam_address .= '%' . zeroise(dechex(ord($email_address[$i])), 2);
        }
    }
    $email_no_spam_address = str_replace('@', '&#64;', $email_no_spam_address);
    return $email_no_spam_address;
}

WordPress Version: 3.7

/**
 * Converts email addresses characters to HTML entities to block spam bots.
 *
 * @since 0.71
 *
 * @param string $email_address Email address.
 * @param int $hex_encoding Optional. Set to 1 to enable hex encoding.
 * @return string Converted email address.
 */
function antispambot($email_address, $hex_encoding = 0)
{
    $email_no_spam_address = '';
    for ($i = 0; $i < strlen($email_address); $i++) {
        $j = rand(0, 1 + $hex_encoding);
        if ($j == 0) {
            $email_no_spam_address .= '&#' . ord($email_address[$i]) . ';';
        } elseif ($j == 1) {
            $email_no_spam_address .= $email_address[$i];
        } elseif ($j == 2) {
            $email_no_spam_address .= '%' . zeroise(dechex(ord($email_address[$i])), 2);
        }
    }
    $email_no_spam_address = str_replace('@', '&#64;', $email_no_spam_address);
    return $email_no_spam_address;
}