From 7497b1099fede3cab2bcee90ef8a1c8a949c2e64 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Wed, 5 Jul 2023 10:46:26 +0000 Subject: [PATCH] General: Compare values as strings in `WP_List_Util::filter()` and `::sort_callback()`. This aims to preserve backward compatibility for code relying on type juggling when using the `wp_list_filter()` function, e.g. comparing a numeric string to an integer. Follow-up to [55908]. Props azaozz, jeremyfelt, david.binda. See #57839. Built from https://develop.svn.wordpress.org/trunk@56137 git-svn-id: http://core.svn.wordpress.org/trunk@55649 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/class-wp-list-util.php | 10 +++++++--- wp-includes/version.php | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/wp-includes/class-wp-list-util.php b/wp-includes/class-wp-list-util.php index 8c1d897475..fbc171e0c6 100644 --- a/wp-includes/class-wp-list-util.php +++ b/wp-includes/class-wp-list-util.php @@ -116,12 +116,16 @@ class WP_List_Util { foreach ( $args as $m_key => $m_value ) { if ( is_array( $obj ) ) { // Treat object as an array. - if ( array_key_exists( $m_key, $obj ) && ( $m_value === $obj[ $m_key ] ) ) { + if ( array_key_exists( $m_key, $obj ) + && ( (string) $m_value === (string) $obj[ $m_key ] ) + ) { $matched++; } } elseif ( is_object( $obj ) ) { // Treat object as an object. - if ( isset( $obj->{$m_key} ) && ( $m_value === $obj->{$m_key} ) ) { + if ( isset( $obj->{$m_key} ) + && ( (string) $m_value === (string) $obj->{$m_key} ) + ) { $matched++; } } @@ -276,7 +280,7 @@ class WP_List_Util { continue; } - if ( $a[ $field ] === $b[ $field ] ) { + if ( (string) $a[ $field ] === (string) $b[ $field ] ) { continue; } diff --git a/wp-includes/version.php b/wp-includes/version.php index 787c77646f..ae190400a1 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.3-beta3-56136'; +$wp_version = '6.3-beta3-56137'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.