Alert: This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.

_make_url_clickable_cb( array $matches )

Callback to convert URI match to HTML A element.


Description Description

This function was backported from 2.5.0 to 2.3.2. Regex callback for make_clickable().


Parameters Parameters

$matches

(array) (Required) Single Regex Match.


Top ↑

Return Return

(string) HTML A element with URI address.


Top ↑

Source Source

File: wp-includes/formatting.php

function _make_url_clickable_cb( $matches ) {
	$url = $matches[2];

	if ( ')' == $matches[3] && strpos( $url, '(' ) ) {
		// If the trailing character is a closing parethesis, and the URL has an opening parenthesis in it, add the closing parenthesis to the URL.
		// Then we can let the parenthesis balancer do its thing below.
		$url   .= $matches[3];
		$suffix = '';
	} else {
		$suffix = $matches[3];
	}

	// Include parentheses in the URL only if paired
	while ( substr_count( $url, '(' ) < substr_count( $url, ')' ) ) {
		$suffix = strrchr( $url, ')' ) . $suffix;
		$url    = substr( $url, 0, strrpos( $url, ')' ) );
	}

	$url = esc_url( $url );
	if ( empty( $url ) ) {
		return $matches[0];
	}

	if ( 'comment_text' === current_filter() ) {
		$rel = 'nofollow ugc';
	} else {
		$rel = 'nofollow';
	}

	/**
	 * 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 = esc_attr( $rel );

	return $matches[1] . "<a href=\"$url\" rel=\"$rel\">$url</a>" . $suffix;
}

Top ↑

Changelog Changelog

Changelog
Version Description
2.3.2 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.