_make_clickable_rel_attr

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

WordPress Version: 6.2

/**
 * Helper function used to build the "rel" attribute for a URL when creating an anchor using make_clickable().
 *
 * @since 6.2.0
 *
 * @param string $url The URL.
 * @return string The rel attribute for the anchor or an empty string if no rel attribute should be added.
 */
function _make_clickable_rel_attr($url)
{
    $rel_parts = array();
    $scheme = strtolower(wp_parse_url($url, PHP_URL_SCHEME));
    $nofollow_schemes = array_intersect(wp_allowed_protocols(), array('https', 'http'));
    // Apply "nofollow" to external links with qualifying URL schemes (mailto:, tel:, etc... shouldn't be followed).
    if (!wp_is_internal_link($url) && in_array($scheme, $nofollow_schemes, true)) {
        $rel_parts[] = 'nofollow';
    }
    // Apply "ugc" when in comment context.
    if ('comment_text' === current_filter()) {
        $rel_parts[] = 'ugc';
    }
    $rel = implode(' ', $rel_parts);
    /**
     * Filters the rel value that is added to URL matches converted to links.
     *
     * @since 5.3.0
     *
     * @param string $rel The rel value.
     * @param string $url The matched URL being converted to a link tag.
     */
    $rel = apply_filters('make_clickable_rel', $rel, $url);
    $rel_attr = $rel ? ' rel="' . esc_attr($rel) . '"' : '';
    return $rel_attr;
}