按类别显示自定义帖子

时间:2016-05-26 作者:Will

我已经创建了一个自定义的帖子类型“宣传册”,目前正在使用下面的代码显示(使用ACF显示宣传册文件)
此时,将分别显示所有小册子

我已经为这种帖子类型设置了一个称为“宣传册\\u类别”的自定义分类法,这样我就可以将宣传册分类到单独的文件夹中,如下所示

Brochure Category 1<小册子1小册子2小册子Brochure Category 2<小册子3小册子4小册子Brochure Category 3<小册子5小册子6小册子

我想显示所有的小册子类别,而不是显示所有的帖子(就像我用下面的代码所做的那样),当单击一个类别时,它会显示该类别中的帖子

我如何才能做到这一点?

<ul class="brochures">
    <?php 
  $temp = $wp_query; 
  $wp_query = null; 
  $wp_query = new WP_Query(); 
  $wp_query->query(\'showposts=18&orderby=title&order=ASC&post_type=brochures\'.\'&paged=\'.$paged); 

  while ($wp_query->have_posts()) : $wp_query->the_post(); 
?>

  <li><a target="_blank" href="<?php the_field(\'brochure_file\'); ?>"><img src="<?php the_field(\'brochure_logo\'); ?>"><h3><?php echo get_the_title(); ?></h3><h4>Click to view</h4></a>
            </li>

<?php endwhile; ?>

<nav class="nextPrev">
    <div class="prev"><?php previous_posts_link(\'&laquo; Previous\') ?></div>
    <div class="next"><?php next_posts_link(\'Next &raquo;\') ?></div>
</nav>

<?php 
  $wp_query = null; 
  $wp_query = $temp;  // Reset
?>

</ul>

2 个回复
SO网友:Djouuuuh

检索所有terms 附在分类“宣传册\\类别”中,您可以使用get_terms() 作用更多信息here.

获得术语后,您可以遍历它们并使用以下工具查询自定义帖子:

$query = new WP_Query( array(
  \'post_type\'             => \'brochures\',
  \'brochure_categories\'   => $current_category,
  \'posts_per_page\'        => -1,
  \'order\'                 => \'ASC\',
  \'orderby\'               => \'title\',
) );
现在,您可以根据需要按类别显示它们。

对你合适吗?

SO网友:Ramcharan
try This Code Change taxonomy name which you are using 

/**post type name: brochures **/
/** taxonomy name: brochures-cat **/
<?php 
  $custom_terms = get_terms(\'brochures-cat\');
  foreach($custom_terms as $custom_term) {
   wp_reset_query();
   $args = array(
      \'post_type\' => \'brochures\',
      \'tax_query\' => array(
          array(
           \'taxonomy\' => \'brochures-cat\',
           \'field\' => \'slug\',
           \'terms\' => $custom_term->slug,
          ),
         ),
      );
   $loop = new WP_Query($args);
   if($loop->have_posts()) {
    echo \'<h2>\'.$custom_term->name.\'</h2>\';
    while($loop->have_posts()) : $loop->the_post();
    echo \'<a href="\'.get_permalink().\'">\'.get_the_title().\'</a><br />\';
    endwhile;
   }
  }
    ?>

相关推荐