2010-09-11 39 views
3

我一直在长时间的谷歌搜索试图找到解决方案...我正在创建一个使用WordPress安装控制内容的CV经理主题。我已设法组织所有WP类别的帖子,但也希望在年度分组中列出这些帖子。目前,我有这样的:按类别和年份排序的WordPress帖子

<?php // Categories 
     $cvm_cat_args = array('orderby' => 'name', 'order' => 'ASC'); 
     $categories = get_categories($cvm_cat_args); ?> 

<?php foreach($categories as $category) : ?> 

<?php // Posts in category 
     $cvm_post_args = array('showposts' => -1, 'category__in' => array($category->term_id), 'caller_get_posts'=>1, 'order' => 'ASC'); 
     $posts = get_posts($cvm_post_args); ?> 

<?php if ($posts) : ?> 

<h1><?php echo $category->name ?></h1> 

<?php foreach($posts as $post) : ?> 
<?php setup_postdata($post); ?> 

<h3><?php the_title(); ?></h3> 
<small><?php the_time(); ?></small> 
<?php the_excerpt() ?> 

<?php endforeach; ?> 

<?php endif; ?> 

<?php endforeach; ?> 

我卡如何在类别中的显示顺序一年的职位上,使得输出将是这样的:

<h1>Category Name 1</h1> 

<h2>2010</h1> 

<h3>Post name 1</h3> 
<p>Excerpt...</p> 

<h3>Post name 2</h3> 
<p>Excerpt...</p> 


<h2>2009</h1> 

<h3>Post name 3</h3> 
<p>Excerpt...</p> 

<h3>Post name 4</h3> 
<p>Excerpt...</p> 

<h1>Category Name 2</h2> 
etc 

任何帮助将是强烈地赞赏。

谢谢!

回答

0
<?php $year = ''; ?> 
<?php foreach($posts as $post) : ?> 
<?php setup_postdata($post); ?> 
<?php if (get_the_time('Y') != $year): ?> 
<?php $year = get_the_time('Y'); ?> 
<h2><?php echo $year; ?></h2> 
<?php endif; ?> 

<h3>Post name 1</h3> 
<p>Excerpt...</p> 

<h3>Post name 2</h3> 
<p>Excerpt...</p> 

<?php endforeach; ?>