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 了,所以也就省了样式的那段代码,所以在这里发布得比较完善一点,方便对大家使用。