按日期字段显示自定义发布类型

时间:2013-09-04 作者:user1473358

我有一个自定义的帖子类型,只是标题和日期字段。我想按此日期字段(非发布日期)的顺序在列表中显示这些帖子。简单地说:

--

样本日期

事件标题1事件标题2

样本日期

事件标题3
事件标题4
事件标题5

(等)

--

没有额外的信息,这就是我想要显示的全部内容。

我根本不知道该怎么办。我对PHP不太在行,所以我非常感谢您对我的帮助。

2 个回复
SO网友:Dipesh KC

我像这样解决了同样的问题,首先将每个帖子存储在另一个名为$events_by_date 以日期为索引。如果另一个事件帖子出现在同一日期,则将该帖子放在同一索引下。

如果需要进一步解释,请发表评论。

  <?php
//setup your wp_query parmeters to make the query

$calendar_results   =   new WP_Query( $wp_query_params );

$events_by_date = array();


     while ( $calendar_results->have_posts() ) : $calendar_results->the_post(); 
        //$date_group =  strtotime($calendar_results->post->post_date);
        $date_group = strtotime(date(\'Y-m-d\',$date_group));
        $events_by_date[$date_group][] = $calendar_results->post;
    endwhile;

global $post;


foreach($events_by_date as $date_heading=>$rows) {

    echo \'<h2 class="published-date">\',
            ucfirst( strftime( \'%A %d %b\',$date_heading ) ) ,
    \'</h2>\';

    foreach ($rows as $post ) {
        setup_postdata($post) ;
        get_template_part( \'content\', $template ); 
    }


}   

wp_reset_query();

SO网友:Saulo Padilha

只需像这样使用WP\\u查询:

$posts_by_date_field = new WP_Query(array(
    \'post_type\'         => \'POST_TYPE_NAME\',
    \'posts_per_page\'    => -1,
    \'meta_key\'          => \'FIELD_NAME\',
    \'orderby\'           => \'meta_value\',
    \'order\'             => \'DESC\'
));


if ($posts_by_date_field->have_posts()) : while ($posts_by_date_field->have_posts()) : $posts_by_date_field->the_post();

    // LOOP

endwhile; endif;

结束

相关推荐

Date, Time, and Timezones

我对在WordPress中使用日期/时间和时区有点困惑。我有以下问题:“管理->设置”部分中时区设置的目的是什么?假设当前格林尼治时间是20:00,假设我在东部时间(东部时间是16:00),那么博客的时间是如何节省的?假设一位读者正在阅读帖子,而他/她位于土耳其。所以他们的当地时间是23:00,他们认为23:00是发布时间吗?假设我使用的是自定义帖子类型,并且我有一个额外的日期/时间字段用于其他日期信息。如何确保自定义日期字段的行为与WordPress字段相同?对于这些基本问题,我深表歉意,但我真的