WordPress循环输出所有子分类及其最近文章

很久以前就想在自己做的的主题上弄一个这样的页面:将某个分类子分类分别输出,同时输出该子分类的最近文章,可当时,除了一个分类一个分类循环出最新文章之外的方法,确实是不知道,找教程也没找到,后来不了了之,想想确实也没这个需求,呵。
恩最近做cms又遇到这个问题了,在国外网站找到了简单的方法,现在整理处理以备后用,做好的如下图

WordPress循环输出所有子分类及其最近文章

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
25
26
27
28
29
30
31
32
33
34
<h1><?php single_cat_title(); ?></h1>  <!-- 输出当前分类标题 -->
<ul>
<?php 
	$i = 0;  // 仅为奇偶项 class 作准备
	$categories =  get_categories('child_of='. $cat .'&depth=0&hide_empty=0&orderby=id&order=asc');
	// 找出其所有子分类,并按ID号升序排列
foreach ($categories as $category) {  // 开始循环子分类
	$now_cat = $category->term_id;  // 子分类ID
	$cat_name = $category->cat_name;  // 子分类名称
?>
	<li id="cat_<?php echo $now_cat; ?>"color: #000000; font-weight: bold;"><?php echo $i%2 . ' ' . $category->slug; ?>">  <!-- $i%2 实现不同的class区别奇偶项($i在循环体末尾循环递增), $category->slug 区别不同分类 —— 这样你可以为每个分类列表定义不同的样式 -->
		<?php echo '<h3>' . $cat_name . '</h3>';  <!-- 输出子分类名称 -->
			echo '<a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '><img src=../wp-content/uploads/caticon/' . $category->slug . '.png /></a>'  // 输出子分类封面图片及其链接,用分类扩展名作为图片名称——一般分类图片实现方法
		?>

		<?php query_posts("showposts=5&cat=$now_cat"); // 定义子分类最新文章 query_posts() ?>			
		<dl>
			<dt><?php echo 'Latest ' . $cat_name; ?></dt>  <!-- 输出 Latest XXX 字样 -->
			<dd>
				<?php while (have_posts()) : the_post(); ?>
				<a href="<?php the_permalink() ?>" rel="bookmark">-&nbsp;<?php the_title(); ?></a>
				<?php endwhile; ?>
				<p>
					<?php echo '<a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>View All ' . $category->name.'</a>';
					// 输出 “View all XXX”  http://www.onbno.com/soft-skill/2646.html链接字样 
					?>
					<i><?php echo '(' . $category->category_count .' posts)' ; ?></i>
					<!-- 输出 11 posts 字样 —— 即子分类文章数 http://www.onbno.com/soft-skill/2646.html -->
				</p>
			</dd>
		</dl>
	</li>
<?php $i++; } ?>
</ul>

当然,这段代码这是提供一种思路,直接使用的话,建议为父层分类新建一个模板文件(category-lala.php ——比如 lala 是你的父层分类扩展名)。

 » 本站地址:http://www.gomoth.com

标签: ,