这是我不久前做的一件类似的事情。
下面是代码的基本功能:
首先,它检索块上第一篇文章的日期。
其次,检索当前日期。
这两个值被输入到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();
?>