不是典型的按日期排序问题

时间:2013-06-20 作者:pelachile

我正在使用WP\\u查询从自定义帖子类型获取所有帖子。这非常适合列出所有帖子。然而,帖子本身有一个自定义的日期字段,我想在H2 标记,列出月份而不重复月份。目前,我可以循环浏览所有帖子,但H2 每个月都会被吐出来。我也不想做月份分类。这些帖子是关于演出日期的。我想列出六月的所有日期,但只有一个H2 六月在里面,然后所有的帖子都在下面。

像这样:

 1. June
    a. Show date
    b. Show date
    c. Show date
 2. July
    a. Show date 
    b. Show date
    c. Show date
而不是这个:

 1. June
    a. Show date
 1. June
    b. Show date
 1. June 
    c. Show date
 2. July
    a. Show date
 2. July
    b. Show date
 2. July
    c. Show date
更新的代码:

$current_month = \'\';                    
while ($query->have_posts()) : $query->the_post();?>  
<?php $date = strtotime( get_field(\'date\') ); $month = date(\'F\',$date); ?
<div class="row"><div class="span10">
   <h2>
     <?php if ($month != $current_month){
               $current_month = $month;
            echo $month; } ?>

2 个回复
最合适的回答,由SO网友:Milo 整理而成

好吧,你仍然必须按照日期键对帖子进行排序,但就输出而言,一般的想法是将当前月份存储在一个变量中,并对照每个帖子的日期进行检查,只有当它发生变化时才输出。伪代码示例:

$current_month = \'\';
while( have_posts() ){
    the_post();
    $this_month = get_post_meta( get_the_ID(), \'your_date_key\', true );
    if( $this_month != $current_month ){
        $current_month = $this_month;
        echo \'<h2>\' . $current_month . \'</h2>\';
    }
}

SO网友:ksr89

可以在中使用时间参数wp_query 用于每月获取后过滤器

$today = getdate();
$query = new WP_Query( \'year=\' . $today["year"] . \'&monthnum=\' . $today["mon"] . \'&day=\' . $today["mday"] );

http://codex.wordpress.org/Class_Reference/WP_Query#Time_Parameters

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post