WordPress 循环输出当前父分类所有子分类及其目录最近文章,其实这个功能用来做 CMS 站点主题是一个非常给力的功能,也是给拥有多个分类目录的父目录做展示的,而不是用 WordPress 常规的展示效果。

最近@子凡 在给一个客户开发企业站点,说是一个企业站点其实就是一个产品展示的网站,因为涉及到产品,那么就存在各种的产品分类,随之而来的解决方法就是本文的主题了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//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 了,所以也就省了样式的那段代码,所以在这里发布得比较完善一点,方便对大家使用。

发表评论
登录后参与评论
专注 WordPress 网站优化解决方案! 加入我们