get_postsで、投稿に含まれるカスタムフィールドをキーにして投稿を検索・取得する場合、一つのカスタムフィールドだけなら、『meta_key』『meta_value』を使って、以下のコードで可能。
$args = array( 'post_type' => 'post', 'meta_key' => 'subtitle', 'meta_value' => '(キーワード)' ); $post_list = get_posts( $args );
また『meta_compare』というパラメータを使って、比較演算子を変更することも可能。デフォルトは『=』。例えば「値が含まれている場合」というような条件を付けたい時は以下のように、『meta_value』は『null』、『meta_compare』は『!=』にする。
$args = array( 'post_type' => 'post', 'meta_key' => 'subtitle', 'meta_value' => 'null', 'meta_compare' => '!=' ); $post_list = get_posts( $args );
『meta_compare』には、『>=』『>』『<』『<=』『LIKE』などが使用可能。 もし複数のカスタムフィールドをキーにして検索・取得したい場合には、以下のように『meta_query』を使う。
$args = array( ‘post_type’ => ‘news’, ‘meta_query’ => array( array( ‘key’ => ‘url’, ‘value’ => ‘www.sandalot.com’ ), array( ‘key’ => ‘area’, ‘value’ => null, ‘compare’ => ‘!=’ ) ) ); $post_list = get_posts( $args );
『meta_query』にパラメータを示す配列を指定する。配列の中は『key』『value』『compare』を使う。
ピンバック: 【WordPress】「get_posts」関数を使ってみた | LINKBAL Engineer's Blog
ピンバック: 【WordPress】カスタムフィールドの日付で期間内のスケジュールだけを並べ替えて表示する │ ノラWEB屋 野良人(のらんど)
ピンバック: [WORDPRESS]タイトルの頭文字別に50音順に並べる | 演劇とかの感想文ブログ