如何在WP_Query中结合元查询和POST_in

时间:2016-12-13 作者:Richard Tinkler

我构建了一个复杂的查询,它应该做3件事:

使用post\\uu-in在$additional\\u-ids数组中选择具有ID的帖子使用post\\u not\\u in忽略$ignore\\u ids数组中ID为的帖子

  • 使用meta\\u查询选择包含cpt值(即动物、蓝色和吃草)的帖子
  • 以下是我目前掌握的情况:

    $args_assets = array(
            \'post_type\' => \'assets\',
            \'posts_per_page\' => -1,
            \'post__in\' => $additional_ids,
            \'post__not_in\' => $ignore_ids,
            \'meta_query\' => array(
                \'relation\' => \'AND\',
                $query_animal,
                $query_color,
                $query_food,
            ),
            \'orderby\' => \'title\',
            \'order\' => \'asc\',
            );
    
    在没有“post\\uu in”=>$附加ID行的情况下,查询工作正常。只要添加post\\uu-in参数,查询就会返回一个空结果。

    是否可以将post\\u in与meta\\u查询相结合?如果是,最好的方法是什么?

    提前感谢您的帮助!

    1 个回复
    最合适的回答,由SO网友:CodeMascot 整理而成

    post__inpost__not_in 相互排斥。

    注意:不能合并post__inpost__not_in 在同一查询中。

    http://codex.wordpress.org/Class_Reference/WP_Query

    使用post__inmeta_query 组合或查询post__not_inmeta_query 结合体他们中的任何一个,但不是他们的联盟。