From 982a6453c9ecac9e34e1c1517211ff23409d1395 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Mon, 3 Feb 2020 00:14:07 +0000 Subject: [PATCH] Canonical: When removing trailing punctuation from query string arguments, match the whole query var name. Props daveslaughter. Fixes #49347. Built from https://develop.svn.wordpress.org/trunk@47169 git-svn-id: http://core.svn.wordpress.org/trunk@46969 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/canonical.php | 2 +- wp-includes/version.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/wp-includes/canonical.php b/wp-includes/canonical.php index 7d8c5ace6a..339e09986d 100644 --- a/wp-includes/canonical.php +++ b/wp-includes/canonical.php @@ -485,7 +485,7 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) { if ( ! empty( $redirect['query'] ) ) { // Remove trailing spaces and end punctuation from certain terminating query string args. - $redirect['query'] = preg_replace( "#((p|page_id|cat|tag)=[^&]*?)($punctuation_pattern)+$#", '$1', $redirect['query'] ); + $redirect['query'] = preg_replace( "#((^|&)(p|page_id|cat|tag)=[^&]*?)($punctuation_pattern)+$#", '$1', $redirect['query'] ); // Clean up empty query strings. $redirect['query'] = trim( preg_replace( '#(^|&)(p|page_id|cat|tag)=?(&|$)#', '&', $redirect['query'] ), '&' ); diff --git a/wp-includes/version.php b/wp-includes/version.php index a81ef22484..9d50ddad74 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -13,7 +13,7 @@ * * @global string $wp_version */ -$wp_version = '5.4-alpha-47168'; +$wp_version = '5.4-alpha-47169'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.