Функция WP_LIST_FILTER()
Функция wp_list_filter() позволяет отфильтровать список объектов, основываясь на заданных аргументах в формате "ключ => значение".
Как это работает?
С помощью этой функции вы можете получить из списка только те объекты, которые соответствуют указанным критериям. Здесь "ключ" — это название свойства объекта, а "значение" — это то, что вы ищете.
Важно помнить: если у объекта есть больше свойств, чем указано в аргументах, это не повлияет на включение объекта в результаты. Но если вы используете логический оператор 'AND', то пропущенные свойства будут исключать объект.
Если вы хотите получить конкретное поле из всех объектов, соответствующих критериям, используйте функцию wp_filter_object_list(). 
Использование
Синтаксис функции:
wp_list_filter( $input_list, $args, $operator );Параметры
- $input_list (array, обязательный): Массив объектов, который нужно отфильтровать.
- $args (array): Массив аргументов в формате "ключ => значение", по которым будет производиться фильтрация. По умолчанию — пустой массив.
- 
$operator (string): Логическая операция, которую нужно выполнить: - 'AND' — все элементы массива должны соответствовать.
- 'OR' — только один элемент должен соответствовать.
- 'NOT' — не должно быть ни одного соответствия.
 По умолчанию используется 'AND'. 
Возвращаемое значение
Функция возвращает массив найденных значений.
Примеры
Пример 1: Проверка наличия объекта в массиве
Предположим, у нас есть массив объектов постов, и мы хотим проверить, есть ли пост с заголовком 'some_title':
global $posts;
$title = 'some_title';
$the_post = wp_list_filter( $posts, [ 'post_title' => $title ] );
$the_post = array_shift( $the_post );
// Если в массиве $posts есть пост с заголовком 'some_title',
// тогда array_shift( $the_post ) вернет этот объект.
if( $the_post ){
    echo $the_post->post_title;
}Пример 2: Демонстрация фильтрации объектов
У нас есть массив объектов, каждый из которых имеет поле count. Мы хотим получить все объекты, значение поля count которых не равно 0.
$objects_array = [
    57 => (object) [
        'parent' => 80,
        'count' => 9,
    ],
    58 => (object) [
        'parent' => 80,
        'count' => 0,
    ],
    59 => (object) [
        'parent' => 80,
        'count' => 4,
    ],
];
$filtered_array = wp_list_filter( $objects_array, [ 'count' => true ] );
/*
$filtered_array = Array
(
    [57] => stdClass Object
        (
            [parent] => 80
            [count] => 9
        )
    [59] => stdClass Object
        (
            [parent] => 80
            [count] => 4
        )
)
*/Пример 3: Без указания ключа
Используем массив строк и фильтруем по значению.
$arr = ['foo', 'bar', 'foo', 'bar'];
$list = wp_list_filter($arr, ['bar']);
/*
Array
(
    [1] => bar
    [3] => bar
)
*/Изменения
- С версии 3.1.0: Функция была введена.
- С версии 4.7.0: Использует класс WP_List_Util.
- С версии 5.9.0: Преобразована в обертку для wp_filter_object_list().
Код функции
function wp_list_filter( $input_list, $args = array(), $operator = 'AND' ) {
    return wp_filter_object_list( $input_list, $args, $operator );
}Теперь вы знаете, как использовать функцию wp_list_filter(), чтобы фильтровать массив объектов в WordPress!
 
						