首页>建站相关>typecho中如何判断首页分类页标签页归档页搜索页等

typecho中如何判断首页分类页标签页归档页搜索页等

在SEO中一般要求不同的页面展现不同的title以及description,网络上关于实现wordpress的title信息有很多版本,部分版本的实现非常复杂,用了很多个if来分门别类的判断。所以接触到Typecho的title实现方式后就有点惊讶,就这,这么方便的么(以下代码来自typecho默认主题):

<title><?php $this->archiveTitle(array(
  'category'  =>  '分类 %s 下的文章',
  'search'    =>  '包含关键字 %s 的文章',
  'tag'       =>  '标签 %s 下的文章',
  'author'    =>  '%s 发布的文章'
), '', ' - '); ?><?php $this->options->title(); ?></title>

随着对这个小软件的深入使用,官方提供的代码有点满足不了需求了,比如某天博主想修改一下按日期归档页的title,按日期归档页面的默认title是日期的输出值,本博客的日期归档页,点击“23年10”这个归档后,title也是“23年10”。觉得这样过于简单了一些,就想同作者页一样,修改成“23年10月 发布的文章”这种形式。

<title><?php $this->archiveTitle(array(
  'category' => '分类 %s 下的文章',
  'search'   => '包含关键字 %s 的文章',
  'tag'      => '标签 %s 下的文章',
  'author'   => '%s 发布的文章',
  'date'     => '%s 发布的文章'
), '', ' - '); ?><?php $this->options->title(); ?></title>

因为没有具体的资料,自己尝试了几个关键字,发现直接填写“archive”是无法实现这个效果的,因为是按日期归档嘛,所以就试着输入了一个“date”,它还真起作用了,你看,有时候人类的悲欢也是可以相通的。

但老依赖悲欢相通也不是长久之计,于是去翻了一下typecho的源码,这里解释一下,源码其实完全看不懂,好在typecho代码精简,文件不多,挨个翻一翻,多少能翻到一点东西的:

  $handles = [
    'index'              => 'indexHandle',
    'index_page'         => 'indexHandle',
    'archive'            => 'archiveEmptyHandle',
    'archive_page'       => 'archiveEmptyHandle',
    404                  => 'error404Handle',
    'single'             => 'singleHandle',
    'page'               => 'singleHandle',
    'post'               => 'singleHandle',
    'attachment'         => 'singleHandle',
    'comment_page'       => 'singleHandle',
    'category'           => 'categoryHandle',
    'category_page'      => 'categoryHandle',
    'tag'                => 'tagHandle',
    'tag_page'           => 'tagHandle',
    'author'             => 'authorHandle',
    'author_page'        => 'authorHandle',
    'archive_year'       => 'dateHandle',
    'archive_year_page'  => 'dateHandle',
    'archive_month'      => 'dateHandle',
    'archive_month_page' => 'dateHandle',
    'archive_day'        => 'dateHandle',
    'archive_day_page'   => 'dateHandle',
    'search'             => 'searchHandle',
    'search_page'        => 'searchHandle'
  ];

在“typecho/var/Widget/Archive.php”文件中找到了这样一组代码,应该比较接近我们的需求了,博主刚才误打误撞的“date”,在这里也得到了印证,比如“error404Handle”,估计摘除“Handle”这几个字符就可以投入使用了。

标签: typecho

移动端可扫我直达哦~

推荐阅读

typecho 2024-04-20

typecho根据标签的slug name信息判断是否输出免责声明

博主是从事机械行业的,工作过程中接触了很多二手老旧的设备,因为是二手设备,不缺胳膊少腿能正常运行已是难得,完善的说明书与售后服务想都不要想了。所以找设备的说明书成了一项附加的工作,总得让设备正常运行起来,偶尔设备有个小病小痛的,也不能...

建站相关 typecho

typecho 2023-11-02

Typecho开发文档-Widget设计文档

什么是WidgetWidget是组成Typecho的最基本元素,除了已经抽象出来的类库外,其它几乎所有的功能都会通过Widget来完成.在实践中我们发现,在博客这种小型但很灵活的系统中实施一些大型框架的思想是不合适的,它会使系统灵活性...

建站相关 typecho

typecho 2023-10-25

Typecho默认路由表一览

路由器(Route)路由器(Route)是Typecho系统中的一个重要组件,类似mod_rewrite的机制,来实现独立的URL和指定的controller/action/params的映射规则.它通过识别诸如http://loca...

建站相关 typecho

typecho 2023-10-21

Typecho自动更新指定文章内容的尝试

曾经在老的博客(wordpress)里尝试并且成功运行过的一个方案,定时去请求某个比如“每天60秒读懂世界”这样的api,获取到数据,然后根据数据更新某一篇博文的内容。因为有“轻微”的强迫症,所以习惯把不用的东西直接“rm -rf”删...

建站相关 typecho

typecho 2023-10-21

Typecho数据库常用API

表的创建和删除在Typecho插件开发过程中,往往需要创建自己的表。上文提到Typecho_Db类中的query函数,可用于执行所有sql语句,因此我们使用query()来进行表的创建、修改或者删除。$db= Typecho_Db::...

建站相关 typecho

typecho 2023-10-18

让typecho博客支持显示数学公式

MathJax是一个开源的基于Ajax的数学公式显示的解决方案,结合多种先进的Web技术,支持主流的浏览器。MathJax根据页面中定义的LaTex数据,生成对应的数学公式。具体可见:mathjax项目代码(GitHub)因为是利用j...

建站相关 typecho

typecho 2023-10-15

为Typecho编辑器增加HTML标签支持

这几天为Typecho编辑器基本不支持块级元素而困扰,在github上翻编辑器插件的时候意外看到有位望友说可以去修改Hyperdown.php文件以增加对HTML标签的支持。该文件位于:build/var/HyperDown.php需...

建站相关 typecho

typecho 2023-10-12

typecho为什么更换主题后部分图片无法正确显示

其实严格的说,这可能是博主自己主题的问题,但人类的悲欢偶尔相通么,没准也可能在其他的主题中遇到类似的。博主之前边写博客边修改拼凑了一个比较简陋的主题,使用一段时间后,觉得主页过于单调了,于是在23年的国庆前后对主题整体做了一个比较大的...

建站相关 typecho

typecho 2023-10-05

typecho输出标签云或生成热门标签

小鸟数据生成标签云的代码应该是仿自默认的纯白主题,为了显示彩色标签,所以为tags增加了几个随机的类,事实上这几个类完全可以利用jquery在前端添加,毕竟现在用户的电脑性能远远超过了自己小水管服务器的性能,php添加随机类的写法:&...

建站相关 typecho