wp_list_filter()


WordPressの関数wp_list_filter()は、配列やオブジェクトリストをフィルタリングするために使用されます。この関数は、特定の条件に一致する項目をリストから抽出するのに役立ちます。

構文

wp_list_filter( array $list, array $args = array(), string $operator = 'AND' );

引数の説明:

  • $list (array) — フィルタリング対象の配列またはオブジェクトリスト。
  • $args (array) — 条件を定義する連想配列。
  • $operator (string) — 条件の評価方法(デフォルトは ‘AND’)。

例 1: 投稿リストから特定のステータスを持つ投稿を抽出

<?php
$posts = array(
    (object) array( 'ID' => 1, 'post_status' => 'publish' ),
    (object) array( 'ID' => 2, 'post_status' => 'draft' ),
);
$filtered = wp_list_filter( $posts, array( 'post_status' => 'publish' ) );
?>

例 2: ユーザーリストから特定のロールを持つユーザーを取得

<?php
$users = array(
    (object) array( 'ID' => 1, 'role' => 'editor' ),
    (object) array( 'ID' => 2, 'role' => 'administrator' ),
);
$filtered = wp_list_filter( $users, array( 'role' => 'administrator' ) );
?>

例 3: 投稿リストをOR条件でフィルタリング

<?php
$posts = array(
    (object) array( 'ID' => 1, 'category' => 'news' ),
    (object) array( 'ID' => 2, 'category' => 'blog' ),
);
$filtered = wp_list_filter( $posts, array( 'category' => 'news' ), 'OR' );
?>

例 4: カスタムフィールドの条件でフィルタリング

<?php
$items = array(
    (object) array( 'ID' => 1, 'meta' => 'value1' ),
    (object) array( 'ID' => 2, 'meta' => 'value2' ),
);
$filtered = wp_list_filter( $items, array( 'meta' => 'value1' ) );
?>

例 5: 投稿リストから複数の条件で抽出

<?php
$posts = array(
    (object) array( 'ID' => 1, 'status' => 'publish', 'category' => 'news' ),
    (object) array( 'ID' => 2, 'status' => 'draft', 'category' => 'blog' ),
);
$filtered = wp_list_filter( $posts, array( 'status' => 'publish', 'category' => 'news' ) );
?>

注意事項

  • $listに提供される項目は、オブジェクトまたは連想配列である必要があります。
  • 条件に一致しない場合、空の配列が返されます。
  • $operatorは ‘AND’ または ‘OR’ をサポートします。

関連機能: