From 7206b554d91856723f7836d062cb416de5e48063 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Tue, 12 Mar 2019 22:15:37 +0000 Subject: [PATCH] Formatting: Improve `rel="nofollow"` handling in comments. Merges [44833] to the 5.1 branch. git-svn-id: https://develop.svn.wordpress.org/branches/5.1@44834 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/formatting.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/wp-includes/formatting.php b/src/wp-includes/formatting.php index b5c4982141..6b44820dad 100644 --- a/src/wp-includes/formatting.php +++ b/src/wp-includes/formatting.php @@ -3004,10 +3004,12 @@ function wp_rel_nofollow_callback( $matches ) { $atts = shortcode_parse_atts( $matches[1] ); $rel = 'nofollow'; - if ( preg_match( '%href=["\'](' . preg_quote( set_url_scheme( home_url(), 'http' ) ) . ')%i', $text ) || - preg_match( '%href=["\'](' . preg_quote( set_url_scheme( home_url(), 'https' ) ) . ')%i', $text ) ) { - - return ""; + if ( ! empty( $atts['href'] ) ) { + if ( in_array( strtolower( wp_parse_url( $atts['href'], PHP_URL_SCHEME ) ), array( 'http', 'https' ), true ) ) { + if ( strtolower( wp_parse_url( $atts['href'], PHP_URL_HOST ) ) === strtolower( wp_parse_url( home_url(), PHP_URL_HOST ) ) ) { + return ""; + } + } } if ( ! empty( $atts['rel'] ) ) { @@ -3020,11 +3022,11 @@ function wp_rel_nofollow_callback( $matches ) { $html = ''; foreach ( $atts as $name => $value ) { - $html .= "{$name}=\"$value\" "; + $html .= "{$name}=\"" . esc_attr( $value ) . "\" "; } $text = trim( $html ); } - return ""; + return ""; } /**