wp_targeted_link_rel( string $text ): string
Adds rel="noopener"
to all HTML A elements that have a target.
Parameters
-
$text
string Required -
Content that may contain HTML A elements.
Return
string Converted content.
Source
File: wp-includes/formatting.php
.
View all references
function wp_targeted_link_rel( $text ) {
// Don't run (more expensive) regex if no links with targets.
if ( stripos( $text, 'target' ) === false || stripos( $text, '<a ' ) === false || is_serialized( $text ) ) {
return $text;
}
$script_and_style_regex = '/<(script|style).*?<\/\\1>/si';
preg_match_all( $script_and_style_regex, $text, $matches );
$extra_parts = $matches[0];
$html_parts = preg_split( $script_and_style_regex, $text );
foreach ( $html_parts as &$part ) {
$part = preg_replace_callback( '|<a\s([^>]*target\s*=[^>]*)>|i', 'wp_targeted_link_rel_callback', $part );
}
$text = '';
for ( $i = 0; $i < count( $html_parts ); $i++ ) {
$text .= $html_parts[ $i ];
if ( isset( $extra_parts[ $i ] ) ) {
$text .= $extra_parts[ $i ];
}
}
return $text;
}
Changelog
Version | Description |
---|---|
5.6.0 | Removed 'noreferrer' relationship. |
5.1.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
Since WP 5.1.0, we can add
rel
attributes to any bit of HTML code.Example used in
wp-includes/widgets/class-wp-widget-text.php
: