Make WordPress Core


Ignore:
Timestamp:
11/09/2021 01:09:11 AM (3 years ago)
Author:
hellofromTonya
Message:

General: Convert wp_list_filter() into a wrapper for wp_filter_object_list().

The code in wp_list_filter() was a duplicate of wp_filter_object_list(), minus the WP_List_Util::pluck() (used when $field is configured).

In testing the wrapper, discovered an edge case (and potential bug) in WP_List_Util::filter() where if the operator matches an empty array was returned without resetting the output property. Without that property being set correctly, WP_List_Util::get_output() was not correct. This commit also fixes this by resetting the property to an empty array.

Follow-up to [15686], [17427], [38928], [51044].

Props pbearne, sergeybiryukov, hellofromTonya.
Fixes #53988.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-list-util.php

    r51044 r52066  
    103103
    104104        if ( ! in_array( $operator, array( 'AND', 'OR', 'NOT' ), true ) ) {
    105             return array();
     105            $this->output = array();
     106            return $this->output;
    106107        }
    107108
Note: See TracChangeset for help on using the changeset viewer.