是否在GET_POST()META_QUERY中使用非自定义字段?

时间:2015-09-25 作者:Peter Westerlund

是否可以在中使用非自定义字段get_posts()\'s\'meta_query\' 使用or-具有自定义字段和类别id的关系语句?

像这样:

$args = array(
        \'posts_per_page\' => 6
      , \'offset\'         => 0
      , \'meta_query\'     => array(
                                 \'relation\' => \'OR\'
                               , array(
                                      \'key\'   => \'placing\'
                                    , \'value\' => \'nn\'
                                 )
                               , array(
                                      \'key\'   => \'category_id\'
                                    , \'value\' => $cat->term_id
                                 )
                            )
    );

$myposts = get_posts($args);
如果是,应该是term_idcategory_id?

或者我如何做到这一点?

1 个回复
SO网友:Nate Allen

不,不是这样的,因为meta_query 用于自定义字段和tax_query 用于分类。

但您可以运行两个单独的查询来获取所有符合条件的ID,然后在第三个查询中使用这些IDpost__in. 例如:

$cat_query_args = array(
    \'posts_per_page\' => -1,
    \'cat\'            => \'63\',
);

$meta_query_args = array(
    \'posts_per_page\' => -1,
    \'meta_query\' => array(
        array(
            \'key\' => \'placing\',
            \'value\' => \'nn\',
        )
    )
);

$cat_query  = get_posts( $cat_query_args  );
$meta_query = get_posts( $meta_query_args );

$merged_posts = array_merge( $cat_query, $meta_query );

$combined_query_args = array(
    \'posts_per_page\' => 6,
    \'offset\'         => 0,
    \'post__in\'       => $merged_posts
);

$combined_posts = get_posts( $combined_query_args );

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post