多くの人がquery_postsの代わりにpre_get_postsフックを使用することを好むようです
わーい!
だから、pre_get_posts
フィルタWP_Query
オブジェクトを意味し何を経由してあなたができるquery_posts()
あなたが経由で行うことができます$query->set()
し、を$query->get()
。特に、meta_query
属性を使用できます(コーデックスを参照)。
$meta_query = array(
array(
'key'=>'featured',
'value'=>'yes',
'compare'=>'!=',
),
);
$query->set('meta_query',$meta_query);
しかし..これは、元の「メタクエリ」(もしあれば)を置き換えます。したがって、元のメタクエリを完全に置き換える場合を除き、以下をお勧めします。
//Get original meta query
$meta_query = $query->get('meta_query');
//Add our meta query to the original meta queries
$meta_query[] = array(
'key'=>'featured',
'value'=>'yes',
'compare'=>'!=',
);
$query->set('meta_query',$meta_query);
このようにして、既存のメタクエリと一緒にメタクエリを追加します。
to または(すべて、または少なくとも1つのメタクエリを満たす投稿を返すために)のrelation
プロパティを設定する場合としない場合があります。$meta_query
AND
OR
* 注:このタイプのクエリは、「特集」メタキーを持つ投稿を返しますが、その値はyes
です。「注目の」メタキーが存在しない投稿は含まれません。3.5でこれを行うことができます。