Typecho 如何在独立页面中做归档时间线?

Typecho提供了根据时间维度来获取文章归档的api,Widget_Contents_Post_Date


Widget_Contents_Post_Date字段

year:年份的字符串形式,譬如2015
month:月份的字符串形式,譬如01
day:字符串形式
date:字符串形式,具体格式由format参数指定,譬如参数指定为Y-m,则date字段输出2015-01
count:该时间归档下的文章数目
permalink:该时间归档的地址

其中没有能够返回文章标题的字段

使用 $this->title() 返回的也只是独立页面的标题


那么如何才能在独立页面中实现这样的效果呢?

图片描述

阅读 6.7k
2 个回答
       <?php $this->widget('Widget_Contents_Post_Recent', 'pageSize=10000')->to($archives);   
    $year=0; $mon=0; $i=0; $j=0;   
    $output = '<div id="archives">';   
    while($archives->next()):   
        $year_tmp = date('Y',$archives->created);   
        $mon_tmp = date('m',$archives->created);   
        $y=$year; $m=$mon;   
        if ($mon != $mon_tmp && $mon > 0) $output .= '</ul></li>';   
        if ($year != $year_tmp && $year > 0) $output .= '</ul>';   
        if ($year != $year_tmp) {   
            $year = $year_tmp;   
            $output .= '<h3 class="al_year">'. $year .' 年</h3><ul class="al_mon_list">'; //输出年份   
        }   
        if ($mon != $mon_tmp) {   
            $mon = $mon_tmp;   
            $output .= '<li><span class="al_mon">'. $mon .' 月</span><ul class="al_post_list">'; //输出月份   
        }   
        $output .= '<li>'.date('d日:',$archives->created).'<a href="'.$archives->permalink .'">'. $archives->title .'</a>  </li>'; //输出文章日期和标题   
        // <em>('. $archives->commentsNum.')</em>
      
    endwhile;   
    $output .= '</ul></li></ul></div>';   
    echo $output;   
?>  

<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进