我在WordPress中有一个导航,它设置为显示默认的月度档案,这种情况下每个月等于一个问题 - 就像杂志一样。
目前,我正在使用wp_get_archives()
将月份标题作为导航中的列表项回显,效果正常。
我想要做的是将一个问题编号(每月递增1)添加到列表项中的月份名称。
目前我尝试在我的主题函数文件中创建一个函数:
function is_new_month() {
global $currentmonth, $previousmonth;
if ( $currentmonth != $previousmonth )
return 1;
else
return 0;
}
我只是根据WP核心is_new_day
功能进行此操作,但我不相信这会有效。
然后在我的标题中我添加了:
<?php
$startissue = 1;
if (is_new_month()):
$startissue++;
endif; ?>
<ul>
<li>Issues
<ul>
<?php wp_get_archives('before=Issue ' . $startissue . ' :') ?>
</ul>
</li>
</ul>
所以我的最终结果应该显示(示例显示最后4个问题/月):
第4期:2014年1月
第3期:2013年12月
第2期:2013年11月
第1期:2013年10月
每个都会链接到每月的帖子存档。
我认为我的自定义功能存在根本缺陷。有更好的方法吗?
这是一种享受,迪玛,谢谢你。除了它向后显示结果,即:
问题1:2014年1月
问题2:2013年12月
第3期:2013年11月
第4期:2013年10月
而不是:
第4期:2014年1月
第3期:2013年12月
第2期:2013年11月
第1期:2013年10月
所以我在order
参数中加入了这里:
$archives = wp_get_archives(array('echo'=>false, 'before'=>'Issue %num%: ', 'order'=>'ASC'));
哪个有效,但仍然不是100%:
问题1:2014年10月
第2期:2013年11月
第3期:2013年12月
第4期:2013年1月
非常接近,谢谢。
答案 0 :(得分:0)
试试这个(把它放在ul
标签内):
$issue_offset = 1;
$archives = wp_get_archives(array('echo'=>false, 'before'=>'Issue %num%: '));
$archives = explode( '</li>' , $archives );
$links = array();
foreach( $archives as $link ) {
$link = str_replace( array( '<li>' , "\n" , "\t" , "\s" ), '' , $link );
$link = str_replace('%num%', $issue_offset, $link);
if( '' != $link ){
$links[] = $link;
$issue_offset++;
}
else {
continue;
}
}
foreach($links as $archive){
echo "<li>$archive</li>";
}