嗨,我知道WP的人有办法通过调用wp_get_archives()来获取档案年份
但是这种方法会获得一个存档年份列表,点击它会重定向到年度的所有帖子。
我想创建一个自定义函数,只是为了得到我点击它的年份列表,它会调用第二个查询来获取月份和后期计数。
例子。点击这一年后,我可以在一年中获得所有可用的帖子以及每个月的帖子数。
任何人都请帮助我们解决这个问题。感谢
答案 0 :(得分:0)
您可以尝试使用 wp_get_archives()
,然后循环使用以下内容:
$args = array('echo' => false, 'type' => 'yearly');
$archives = wp_get_archives($args);
foreach($archives as $archive){
// CODE FOR EACH YEAR ARCHIVE
}
我不完全确定你要做什么。
上面的答案无论如何都不好,因为wp_get_archives()只返回一个我们无法循环的字符串。
这是一个非常棘手的问题,因为似乎没有本地方法来执行此操作,请参阅下面的代码,该代码可以帮助您:
<?php
$months = array();
for ($m=1; $m<=12; $m++) {
$month = date('F', mktime(0,0,0,$m, 1, date('Y')));
$months[$m] = $month;
}
$earliest_year = 2016;
$current_year = date('Y');
$years = range($earliest_year, $current_year);
foreach ($years as $year){
echo '<h1>' . $year . '</h1>';
foreach ($months as $monthnum => $month){
$args = array(
'year' => $year,
'monthnum' => $monthnum
);
$posts = get_posts($args);
if($posts){
echo '<h2>' . $month . '(' . count($posts) . ')</h2>';
}
foreach($posts as $post){
if($post){
$post_id = $post->ID;
echo '<a href="' . get_the_permalink() . '">' . get_the_title() . '</a><br>';
} //END if($post)
} //END foreach($posts as $post)
} //END foreach ($months as $monthnum => $month)
} //END foreach ($years as $year)
?>
请告诉我这是否有帮助,或者如果您有任何疑问。