wp_list_filter() の使い方|説明・引数・注意点

説明

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

コメント

タイトルとURLをコピーしました