diff --git a/wp-includes/formatting.php b/wp-includes/formatting.php
index f5ac4accf0..72f0ba116f 100644
--- a/wp-includes/formatting.php
+++ b/wp-includes/formatting.php
@@ -2750,10 +2750,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'] ) ) {
@@ -2766,11 +2768,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 "";
}
/**
diff --git a/wp-includes/version.php b/wp-includes/version.php
index 34f12bcd39..3c43cb0ce5 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
-$wp_version = '5.0.4-alpha-44523';
+$wp_version = '5.0.4-alpha-44835';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.