WordPress Version: 5.5
/**
* Callback to convert URL match to HTML A element.
*
* This function was backported from 2.5.0 to 2.3.2. Regex callback for make_clickable().
*
* @since 2.3.2
* @access private
*
* @param array $matches Single Regex Match.
* @return string HTML A element with URL address.
*/
function _make_web_ftp_clickable_cb($matches)
{
$ret = '';
$dest = $matches[2];
$dest = 'http://' . $dest;
// Removed trailing [.,;:)] from URL.
$last_char = substr($dest, -1);
if (in_array($last_char, array('.', ',', ';', ':', ')'), true) === true) {
$ret = $last_char;
$dest = substr($dest, 0, strlen($dest) - 1);
}
$dest = esc_url($dest);
if (empty($dest)) {
return $matches[0];
}
if ('comment_text' === current_filter()) {
$rel = 'nofollow ugc';
} else {
$rel = 'nofollow';
}
/** This filter is documented in wp-includes/formatting.php */
$rel = apply_filters('make_clickable_rel', $rel, $dest);
$rel = esc_attr($rel);
return $matches[1] . "<a href=\"{$dest}\" rel=\"{$rel}\">{$dest}</a>{$ret}";
}