Formatting: Ensure that wp_filter_object_list() will return an array when being passed an object with magic methods.

Fixes #50095.

Props johnjamesjacoby.

Built from https://develop.svn.wordpress.org/trunk@48413


git-svn-id: http://core.svn.wordpress.org/trunk@48182 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
whyisjake 2020-07-10 00:31:06 +00:00
parent 1158166d9c
commit 35257c2e2d
2 changed files with 16 additions and 5 deletions

View File

@ -102,12 +102,23 @@ class WP_List_Util {
$filtered = array(); $filtered = array();
foreach ( $this->output as $key => $obj ) { foreach ( $this->output as $key => $obj ) {
$to_match = (array) $obj;
$matched = 0; $matched = 0;
foreach ( $args as $m_key => $m_value ) { foreach ( $args as $m_key => $m_value ) {
if ( array_key_exists( $m_key, $to_match ) && $m_value == $to_match[ $m_key ] ) {
$matched++; if ( is_array( $obj ) ) {
// Treat object as an array
if ( array_key_exists( $m_key, $obj ) && ( $m_value == $obj[ $m_key ] ) ) {
$matched++;
}
} elseif ( is_object( $obj ) ) {
// Treat object as an object
if ( isset( $obj->{$m_key} ) && ( $m_value == $obj->{$m_key} ) ) {
$matched++;
}
} }
} }

View File

@ -13,7 +13,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '5.5-beta1-48412'; $wp_version = '5.5-beta1-48413';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.