2013-03-16 118 views
0

我有一个wordpress自定义帖子类型的“奖项”,其中有一个“奖章”的自定义分类。我试图编写一个查询,将它们全部列出,但按年份分组,并将年份放在标题中。例如,2010年的所有奖项将归为一组,&以“2010”为标题。这甚至有可能吗?我可以将它们全部列出来,但是,它目前每年都列出它们。这里是我当前的查询:如何使用标题将分类标准与Wordpress查询结果分开?

$taxonomy = 'awardyear'; 
$queried_term = get_query_var($taxonomy); 
$terms = get_terms($taxonomy, 'slug='.$queried_term); 

$args = array( 
'post_type' => 'awards', 
'posts_per_page' => -1 , 
'awardyear' => $term->name, 
'order_by' => 'awardyear', 
'order' => 'ASC'  
); 

if ($terms) { 
    foreach($terms as $term) { 
    echo '<span class="award_year">' . $term->name . '</span> '; 
    query_posts($args); 

// The Loop 
while (have_posts()) : the_post(); 
    echo '<li style="list-style: none;">'; 
    echo '<a href="'; 
    the_permalink(); 
    echo '">'; 
    the_title(); 
    echo '</a>'; 
    echo '</li>'; 
endwhile; 

// Reset Query 
wp_reset_query(); 

    } 
} 

例子输出为:

2010 
Award Example Number 1 
Award Example Number 2 

2011 
Award Example Number 1 
Award Example Number 2 
Award Example Number 3 
Award Example Number 4 

2012 
Award Example Number 1 
Award Example Number 2 
Award Example Number 3 
+0

你的解释看起来有些模糊。你能解释一下你如何看待输出的例子吗? – 2013-03-16 16:00:58

+0

我编辑了我的问题,以澄清我的目标输出 – TripsLeft 2013-03-16 17:10:26

回答

1

您的问题是$args['awardyear']获取设置,一旦被定义$term之前,因此将自身不确定的。将其从$args的定义中删除,并将$args['awardyear'] = $term->name;放在foreach循环的顶部。这样它将在每个过去正确设置。

请注意,这种使用query_posts()通常是皱眉;请参阅该功能的Codex条目。

0

你可能要考虑做不同的方式为post元将是对实际完成你有效地想要什么更好的选择。

虽然不管你是否真的想使用分类法,你需要根据一个带有分类列的查询来完成,你可以从那里显示它。

参考:http://scribu.net/wordpress/sortable-taxonomy-columns.html

+0

不,也没有工作。那年印刷的,就像它应该的那样,但之后它列出了所有的奖项。不仅仅是那一年的那些。感谢您的努力。非常感谢 – TripsLeft 2013-03-17 10:56:44

+0

我更新了我的答案。 – 2013-03-17 14:27:15

相关问题