説明
wp_list_filter() は、配列(オブジェクトの配列)から、条件に合う要素だけを返す関数です。
基本構文
wp_list_filter( array $input_list, array $args = array(), string $operator = 'AND' ): array
引数
$input_list:対象の配列$args:条件$operator:AND/OR/NOT
戻り値
条件に合う要素の配列。
使い方(サンプル)
$list = wp_list_filter( $items, array( 'type' => 'a' ) );
注意点
- フィールドの値が完全一致するものを抽出します。
実務での使いどころ
- オブジェクトや配列の一覧を、条件で絞り込むとき(例:公開済みの投稿だけを残す)。
よくあるミスと対処
- 戻り値のキー(添字)が、保持される。連番にしたいときは、
array_values()を通す。 - 条件の項目が、存在しない要素は、除外される。
- 大量のデータで使い、処理が重くなる。クエリの段階で、絞る。
NG例
$pubs = wp_list_filter( $posts, array( 'post_status' => 'publish' ) );
echo $pubs[0]->post_title; // キーが保持され、[0] があるとは限らない
OK例
$pubs = array_values( wp_list_filter( $posts, array( 'post_status' => 'publish' ) ) );
使い分け早見表
| 関数 | 役割 |
|---|---|
wp_list_filter() |
条件に合う要素だけを、残す |
wp_list_pluck() |
1つの項目だけを、取り出す |
wp_filter_object_list() |
絞り込みと、項目の取り出しを、まとめて行う |
関連項目
wp_list_pluck()、wp_filter_object_list()
公式リファレンス:wp_list_filter() | Function | WordPress Developer Resources

コメント