青益云记

平凡的人,平凡的事,平凡心做平凡事

  • 138
  • 文章数
  • 6
  • 分类数
  • 343
  • 评论数
标题

「 Typecho不同分类的文章使用不同的模板分离展示 」

青益   |  2024年12月15日 最近想给主题加个功能,但是不希望我新增的一些文章直接进入到我的总输出列表中(主页Index); 这个事情主要分两步,隐藏index.p...
内容

最近想给主题加个功能,但是不希望我新增的一些文章直接进入到我的总输出列表中(主页Index);

这个事情主要分两步,隐藏index.php中会输出的该分类

主要代码即

<?php while($this->next()): ?>
<?php if($this->category != "abc"): ?>
//abc为你不想在首页显示分类的abc名称
//正常输出循环
<?php endif; ?>
<?php endwhile; ?>

找到如上图所示的首行和尾行代码,分别插入中间的代码即可

第二步,写个独立页面,主要是为了装下单独分类

在Noline主题中的做法是,只需要拷贝index.php中的代码,加上独立页面的页头即可,然后 把

<?php while ($this->next()): ?>

改为:

<?php $this->widget('Widget_Archive@index', 'pageSize=5&type=category', 'mid=297')->to($newList); ?>  <!-- 取到特定类目的文章,存放在newList变量中 -->
<?php while ($newList->next()): ?>  <!-- 对取到的文章进行循环输出 -->
解释:
  1. 第一行:取特定类目的文章存在 newList 中,mid 就是想指定的类目 id,pageSize 就是翻页时每页的文章数。
  2. 第二行:循环输出文章,功能类似替换前的 next()): ?>
  3. 然后将 $this 变量替换为 $newList 变量,包括: 把 while 循环内部所有的 $this 替换为 $newList 底部的 $this->pageNav 也要替换为 $newList->pageNav
解释:
诸如 $this->title()、$this->permalink() 等都是取文章的特定信息,现在文章存在 newList 变量中了,所以替换即可。

原文参考拾月