在wordpress中我有一种名为'projects'的帖子,这篇文章有一个名为'year'的自定义字段。
我想展示所有'项目',基本上是他们的名字和描述,但我想只在执行它的年份显示一次。 喜欢这个
1991
项目1
项目2
的 1995
project2.1
项目2.2
的 1996
项目A2.1
项目A2.11
的 1997
项目AA
我做了这个查询
<?$wp_query->query('post_type=project_post&posts_per_page=-1&orderby=year&order=ASC');?>
但是这样做我会得到这个结果
1991年项目1
1991年项目2
1995年项目2.1
1995年项目2.2
1996年项目A2.1
1997年项目AA
答案 0 :(得分:1)
最后我明白了
<?php
$the_query = new WP_Query( array(
'post_type' => 'project_post',
'meta_key' => 'time',
'orderby' => 'meta_value'
) );
$any = '';
while ($the_query->have_posts() ) :
$the_query->the_post();
$temp_date = get_post_meta( get_the_ID(), 'time', true );?>
<div class="project" >
<?if ($temp_date != $any ) {
$any = $temp_date;?>
<div><?echo date( "Y", strtotime( $any));?></div>
<?}else{?><div class="field"></div><?}?>
<div><?the_title();?> </div>
<div><?the_field( "region" );?></div>
</div>
<div style="clear:both"></div>
<?endwhile;?>
答案 1 :(得分:0)
你应该使用
'post_type=project_post&posts_per_page=-1&orderby=meta_value_num&meta_key=year'
请注意orderby=meta_value_num&meta_key=year
,因此它将按自定义键排序,默认情况下为ASC
,因此无需提及。
详细了解Codex。