更新到B2 4.1.5+ 版本后,我们就可以设置专题目录的文章排序了。
但是,当你将【专题文章排序方式】设置为【最旧的排在最前面】时,在专题目录中,标题下方的 XXX前更新 会显示为最旧的那篇文章的日期。
这是因为在代码中,没有判断文章排序,总是将显示在最上面的文章的时间作为更新时间。如下图左边图片:
修正的方法就是检查下【专题文章排序方式】的排序方式,然后选择到底是第一篇还是最后一篇的时间为更新时间。
注:文本的修改方法也是不行的,因为只能根据显示在列表的5篇文章来选择日期,如果专题超过5篇,就不对了,暂时也没空折腾,等后续有空再研究吧。
打开B2主题的 b2\Pages\collection.php
,按照下图所示添加和替换代码即可:
第①处的代码为:
$order = b2_get_option('template_collection','collection_post_order');
$order = !empty($order) ? $order : 'asc';
第②处的代码为:
<?php
$latest = false;
if( !empty($post_data) ) {
$latest = ( $order == 'asc') ? end($post_data) : $post_data[0];
}
echo $latest ? Post::time_ago($latest['date']).__('更新','b2').' · ' : '';
echo $v['posts']['count'].__('篇文章','b2');
?>
已将该代码反馈给春哥,后续版本应该会修复了。