我在WordPress中有一个导航,它被设置为显示默认的每月档案,也就是说,每个月都等于一个问题--就像杂志一样。
目前,我正在使用wp_get_archives()作为一个列表项目在我的nav中回显月份标题,这很好。
我想要做的是在列表项中的月份名称前加上一个问题号,它每月递增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月
不过,非常接近,所以谢谢你。
发布于 2014-01-13 08:59:30
试试这个(把它放在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>";
}https://stackoverflow.com/questions/21086366
复制相似问题