根据第一个查询的术语运行下一个查询

时间:2014-04-02 作者:Dropshotdragon

我正在创建一个作者网站。我正在使用自定义的帖子类型(Books)来显示书籍。我正在使用另一个自定义帖子类型(评论)在与相应书籍相同的页面上显示评论。我正在使用自定义分类法对书籍和评论进行分类,包括book1、book2等术语。

在每一页上(single-books.php), 我正在运行第二个查询以显示评论。到目前为止还不错。问题是如何只显示与当前书籍具有相同术语的评论。

如何从第一个查询中获取术语,然后在下一个查询中运行它?

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

如果我理解正确的话,这本书和评论有着相同的分类法。

那么,只需在single-books.php, 将其保存在变量中,然后使用该变量为\'tax_query\':

if ( have_posts() ) {
  the_post();

  // get the term for the current book and save in a variable
  $book_terms = get_the_terms( get_the_ID(), \'your_custom_taxonomy\' );
  $book_term = ! empty( $book_terms ) ? array_shift( $book_terms ) : FALSE;

  // loop code for the book goes here

}

if ( $book_term ) { // if we get the term for current book...
  // second query
  $args = array(
    \'post_type\' => \'review\',
    \'tax_query\' => array(
       array(
         \'taxonomy\' => \'your_custom_taxonomy\',
         \'terms\' => array( $book_term->term_id )
       )
     )
  );
  $reviews = new WP_Query( $args );

  // loop code for review goes here
}

结束

相关推荐

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

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