查询帖子,但只从自定义分类中返回1?

时间:2013-10-26 作者:Jacob

我想查询我的帖子,只从自定义分类中返回一篇帖子。这可能吗?

以下是一个示例:

我有一个名为Author的自定义分类法。我有200篇关于不同作者的帖子。我想查询和显示6篇文章,但我不想在查询中重复同一作者。下面是我的问题。谢谢

<?php $args = array(\'posts_per_page\' => 6, \'orderby\' => \'rand\');
                $taximg_loop = new WP_Query( $args );
                while ( $taximg_loop->have_posts() ) : $taximg_loop->the_post();?>
<?php endwhile; ?>
            <?php wp_reset_postdata(); ?>

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

我认为使用标准WP_Query 您应该运行6个不同的循环,但这是无法承受的。但使用自定义$wpdb 查询你可以做的技巧。。。

function get_unique_posts_tax( $taxonomy = \'category\', $number = 10, $cpt = \'post\') {
  global $wpdb;
  return $wpdb->get_results( $wpdb->prepare(
    "SELECT p.* FROM $wpdb->term_relationships
    JOIN $wpdb->term_taxonomy AS tt 
    ON tt.term_taxonomy_id = $wpdb->term_relationships.term_taxonomy_id
    JOIN $wpdb->posts AS p ON p.ID = $wpdb->term_relationships.object_id
    WHERE tt.taxonomy = %s
    AND p.post_type = %s AND p.post_status = \'publish\'
    GROUP BY $wpdb->term_relationships.term_taxonomy_id
    ORDER BY RAND() LIMIT %d", $taxonomy, $cpt, $number
  ) );
}
将此函数放入functions.php 之后,你可以

$loop = get_unique_posts_tax( \'author\', 6 );

if ( ! empty($loop) ) {
  global $post;
  foreach ( $loop as $post ) {
    setup_postdata($post);

    // Here goes your loop content...
    echo \'<p>\' . get_the_title() . \'</p>\';

  }
  wp_reset_postdata();
}

结束

相关推荐

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

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