wp_filter_object_list

Фильтрует массив объектов по указанным параметрам (key=>value) и получает объекты из переданного массива, которые подходят по нужным параметрам.

Хуков нет.

Возвращает

массив объектов или массив полей. Если не удалось получить данные, то пустой массив: array().

Использование

wp_filter_object_list( $list, $args, $operator, $field );
$list(массив) (обязательный)
Массив объектов, который с которым будем работать.
По умолчанию: нет
$args(массив)
Параметры по которым нужно выбирать объекты. Указываем в массиве key => val.
По умолчанию: array()
$operator(строка)
Указывает как обрабатывать указанные в $args параметры. Может быть: OR или AND. or – будет искать объекты у которых есть любой из указанных параметров. and – будет искать объекты у которых есть одновременно все указанные параметры.
По умолчанию: and
$field(строка)
Поле объекта которое нужно выводить, вместо вывода всего объекта.
По умолчанию: false

Примеры

#1. Выбор объектов по указанным параметрам

Предположим мы сделали выборку постов и у нас есть массив объектов постов $posts. Который содержит вот такие объекты:

$args = array('post_author'=>'1', 'comment_status'=>'open');

$filtered_posts = wp_filter_object_list( $posts, $args, 'or', 'ID' );

$filtered_posts будет содержать:

<?php
function wp_filter_object_list( $list, $args = array(), $operator = 'and', $field = false ) {
	if ( ! is_array( $list ) ) {
		return array();
	}

	$util = new WP_List_Util( $list );

	$util->filter( $args, $operator );

	if ( $field ) {
		$util->pluck( $field );
	}

	return $util->get_output();
}