web-dev-qa-db-ja.com

メタキーにある数を使ったget_postsの使用

Get postsを使用していますが、特定のmeta_keyが特定の値を持つ投稿に基づいてクエリを絞り込む必要があります。

このようなもの

<?php $reviews = get_posts('post_type=reviews&numberposts=-1&   // eg. // location=berkshire');

それは可能ですか?

素晴らしい

3
Robin Knight

get_postsWP_Query が受け入れる引数のいずれかを受け入れます。だからいくつかの選択肢があります。

1. meta_keyおよびmeta_value

<?php
get_posts(array(
   // some more args here
   'meta_key'   => 'some_key',
   'meta_value' => 'some value'
));

2. meta_query

meta_querymeta_keymeta_valueを使うよりも洗練されています。たとえば、meta_keyに3つの値のいずれかを持つ投稿を取得したいとします。

<?php
get_posts(array(
   // more args here        
   'meta_query' => array(
      // meta query takes an array of arrays, watch out for this!
      array(
         'key'     => 'some_key',
         'value'   => array('anOption', 'anotherOption', 'thirdOption'),
         'compare' => 'IN'
      )
   )
));

WP_Queryのドキュメントの カスタムフィールドのセクション に、チェックアウトするためのたくさんの例があります。

9
chrisguitarguy

はい。それが可能だ。 meta_keyおよびmeta_valueパラメーターを使用してください。 meta_keyはカスタムフィールドキー(例:location)用で、meta_valueはカスタムフィールド値(例:berkshire)用です。

以下の洗練されたコードを使用してください。

/* Query args. */
$args = array(
    'post_type' => 'reviews',
    'posts_per_page' => -1,
    'meta_key' => 'location', 
    'meta_value' => 'berkshire'
);

/* Get Reviews */
$reviews = get_posts( $args );
1
byjml