列出档案年份-逐个帖子

时间:2014-08-26 作者:user52466

我想做一个列表存档“逐帖”,但按年份分开。像这样:

<h2>2014</h2>
<ul>
Post 4
Post 3
Post 2
Post 1
<ul>
<h2>2013</h2>
<ul>
Post 3
Post 2
Post 1
<ul>
有没有办法做到这一点?

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

这是我不久前做的一件类似的事情。

下面是代码的基本功能:

首先,它检索块上第一篇文章的日期。

其次,检索当前日期。

这两个值被输入到range() 函数以获取两者之间的所有年份

  • Aforeach 循环每年单独获取,并返回到自定义WP_Query 检索特定年份的职位

    您需要做什么:

    添加符合您需要的相关HTML标记

    按所需顺序对帖子排序

    必要时添加额外参数以满足您的需要

    以下是代码:

    <?php
    $oldest = get_posts( \'post_type=post&post_status=publish&posts_per_page=1&order=ASC\' );
    $oldest_date = $oldest[0]->post_date;
    
    $first_date = date(\'Y\', strtotime($oldest_date));
    $todays_date = date(\'Y\');
    
    $year_range = range($todays_date, $first_date);
    foreach ($year_range as $year) { 
        echo \'<h2>\' . $year . \'</h2>\';
    
        $args = array(
            \'posts_per_page\'    => -1,
            \'post_type\'         => \'post\',
            \'post_status\'       => \'publish\',
            \'year\'              => $year,
        );
    
        $yearly_posts = new WP_Query($args);
    
        if($yearly_posts->have_posts()) {
            echo \'<ul>\';
                while($yearly_posts->have_posts()) { 
                    $yearly_posts->the_post();
                        echo \'<li>\' . get_the_title() . \'</li>\';
                }
            echo \'</ul>\';
        }
    }
    wp_reset_postdata();                
    ?>
    

  • 结束

    相关推荐

    显示Archives.php中的所有自定义帖子类型

    我该怎么做?archive.php 只有以下内容:wp_get_archives(\'type=monthly\'); 以及wp_get_archives() 没有显示所有帖子类型的参数。我也认为archive-[post_type].php 不是我要找的,因为我希望所有帖子类型都显示在一个归档页面中。谢谢W