我看到很多人喜欢使用pre\\u get\\u posts挂钩而不是query\\u posts
耶!
所以pre_get_posts 过滤器aWP_Query object 这意味着你可以通过query_posts() 您可以通过$query->set() 和$query->get(). 特别是我们可以利用meta_query 属性(请参见Codex):
$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);
通过这种方式,我们将元查询与现有的元查询一起添加。
您可能/可能不想设置relation 的属性$meta_query 到AND 或OR (返回满足所有或至少一个元查询的帖子)。
*Note: 这种类型的查询将返回带有“featured”元键的帖子,但其值不是yes. 它将不包括“特色”元键不存在的帖子。You\'ll be able to do this in 3.5.