Typecho 自定义归档页面
环境
Themes : memoo (大佬根据默认主题修改的) Typecho : 1.2
创建php文件
进入当前主题目录/path to yourblog/usr/themes/memoo,然后从page.php复制一个archives.php文件.
cp /path to yourblog/usr/themes/memoo/page.php archives.php
修改代码
- 将
archives.php文件中的<?php $this->need('header.php'); ?>替换为如下代码:
<?php
/**
* archives
*
* @package custom
*/
$this->need('header.php');
?>
- 将
archives.php文件中的<?php $this->content(); ?>替换为如下代码:
<?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> <em>('. $archives->commentsNum.')</em></li>'; //输出文章日期和标题
endwhile;
$output .= '</ul></li></ul></div>';
echo $output;
?>
前端配置
上述操作完成后,进入typecho后台,依次进入管理—>独立页面—>新增,然后在标题处填入归档,也可自行命名,固定链接可以设置为archives.html。右侧自定义模板将不选择下拉菜单选为:archives,而后发布页面。