显示每个定制类别中的一个帖子(也称为“定制分类术语”)

时间:2017-05-19 作者:Natalia

我想在每个自定义类别中显示一个帖子(最旧的,但现在还不太重要),除了一个(称为“主页”)。

到目前为止我

1) 显示现有的每个自定义分类法段塞,我不需要的除外
2)显示特定分类法的所有自定义帖子(“肖像”)

如何执行脚本的第三部分也是主要部分-显示每个自定义分类法中的一篇文章?

  //get all custom categories (taxonomy)
$terms = get_terms(array(\'taxonomy\' => \'album\', \'exclude\' => 4)); 
foreach ($terms as $term){
    echo $term->slug; 
    echo "<br/>"; 
}
//get all custom post types of custom category "portraits"
//however, need to get one oldest post of each custom category from above
    $args = array(
    \'post_type\' => \'simple_image\', 
    \'posts_per_page\' => \'-1\',
    \'order_by\' => \'date\', 
    \'order\' => \'ASC\', 
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'album\',
            \'field\' => \'slug\',
            \'terms\' => \'portraits\' 
        )
    )
);

 $new_query = new WP_Query ($args);
  while ( $new_query->have_posts() ) : $new_query->the_post();    
         the_post_thumbnail(\'thumbnail\') ; 
         endwhile; 
这是一个照片库主题,我想显示一个带有缩略图的相册列表。缩略图将来自相册中的一篇帖子。

[编辑]我看过一个脚本,其中WP query被放在foreach循环中,这对我来说没有多大意义。有更简单的吗?没有加入操作吗?

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

您可以使用tax_query 根据分类法查询您的帖子。但请注意,如果你有很多类别,那么这将需要很多资源,除非你使用缓存插件。

$terms = get_terms(array(\'taxonomy\' => \'album\', \'exclude\' => 4)); 
foreach ($terms as $term){
    $args = array(
    \'post_type\' => \'simple_image\', 
    \'posts_per_page\' => \'1\',
    \'order_by\' => \'date\', 
    \'order\' => \'ASC\', 
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'album\',
            \'field\' => \'slug\',
            \'terms\' => $term->slug, 
            )
        )
    );
    $new_query = new WP_Query ($args);
    if ($new_query->have_posts()) {
        while($new_query->have_posts()){
            $new_query->the_post();
            the_post_thumbnail(\'thumbnail\');
        }
    }
    wp_reset_postdata();
}
正如您已经注意到的,如果在该分类法下有100个术语,那么这将运行100个查询。因此,请确保将其与缓存插件结合使用。

结束

相关推荐