最后更新时间为 2019年2月24日
WordPress 循环输出当前父分类所有子分类及其目录最近文章,其实这个功能用来做 CMS 站点主题是一个非常给力的功能,也是给拥有多个分类目录的父目录做展示的,而不是用 WordPress 常规的展示效果。
最近 在给一个客户开发企业站点,说是一个企业站点其实就是一个产品展示的网站,因为涉及到产品,那么就存在各种的产品分类,随之而来的解决方法就是本文的主题了。
//WordPress循环输出当前父分类所有子分类及其目录最近文章
<?php
$i = 0; // 仅为奇偶项 class 作准备
$categories = get_categories('child_of='. $cat .'&depth=0&hide_empty=0&orderby=id&order=asc');// 找出其所有子分类,并按ID号升序排列,其实这里还可以使用数组array(8,9,11,12)输出指定id的分类。
$num=5;//指定每次循环输出的文章篇数
foreach ($categories as $category) { // 开始循环子分类
$now_cat = $category->term_id; // 子分类ID
//$cat_name = $category->cat_name; // 子分类名称
?>
<?php $posts = query_posts("&cat={$now_cat}&orderby=date&showposts={$num}" );//这个子凡就不解释了,相信你看得懂,嘿嘿 ?>
<h2>
<strong><?php single_cat_title(); ?></strong><!--其实这里用single_cat_title()和用变量$cat_name都可以了-->
<a href="<?php echo get_category_link($category); ?>" target="_blank">More...</a>
</h2>
<div id="shows">
<ul>
<?php while(have_posts()) : the_post(); ?>
<li id="cat_<?php echo $now_cat; ?>" class="item<?php echo $i%2 . ' ' . $category->slug; ?>"> <!-- $i%2 实现不同的class区别奇偶项($i在循环体末尾循环递增), $category->slug 区别不同分类 —— 这样你可以为每个分类列表定义不同的样式 -->
<a href="<?php the_permalink(); ?>" target="_blank"><?php the_title(); ?>
</li>
<?php endwhile; ?>
</ul>
</div>
<?php $i++; }//$i实现递增?>
当然,这段代码主要还是提供一种思路,如果使用建议为父级分类新建一个模板文件(category-news.php,比如 news 是你的父分类目录的别名)。
其实在使用的时候并没有使用到这么完整的代码,因为样式是统一的,所以就不需要定义变量$i 了,所以也就省了样式的那段代码,所以在这里发布得比较完善一点,方便对大家使用。