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

移动端可扫我直达哦~

推荐阅读

thumbnail 2025-06-08

typecho前台ajax登录与错误处理

尝试了在主题前台做一个登录框,登陆的功能是实现了,有一个小小的不便,就是如果输错了密码,因为页面又跳回了首页,所以弹出式登录框又被隐藏了,登录成功与否不够明显,二次登录的场合操作也较繁琐,所以想实现前台以ajax的方式登录。实现aja...

建站相关 typecho

thumbnail 2025-06-08

聊聊html里的head部分

HTML文档的<head>部分是一个容器,用于包含文档的元数据(metadata)和链接到外部资源的信息,这些内容不会直接显示在网页上,但对网页的功能和表现至关重要。主要元素和功能1. 基础元素<title>:...

建站相关 typecho

thumbnail 2025-06-04

typecho前端实现站点语言的切换

前端修改的数据能及时反馈到后端,那当然需要一个前后端都可以无障碍读取的东西,所以最初是想要用localstorage,但发现php无法直接读取其值,所以就换成了cookie。前端通过js来设置参数值:document.cookie='...

建站相关 typecho

thumbnail 2025-06-02

typecho 主题中的模板与模块的概念

模板是 typecho 主题中一个重要的概念,我们说过typecho的极简主题可以只存在 index.php 这一个文件,但需要展现分类页的时候,typecho事实上会先去寻找名为 category.php 的分类页模板,文章页当然也...

建站相关 typecho

thumbnail 2025-06-02

typecho的几种常见的文章列表调用

处理好了header与面包屑,接下来就按照自己的需求自由发挥了,先放一个分类列表,再挑出一个喜欢的标签,自定义一个该标签下内容展示模块。Typecho 提供了多种文章循环方式,以下是常用的几种方法:标准文章循环<?php whi...

建站相关 typecho

thumbnail 2025-06-02

在typecho里实现面包屑导航

什么是面包屑导航面包屑导航是一种网站导航方式,通常在网站顶部显示,大多会放在站点header的下方,用于显示用户当前位置。 面包屑导航由导航元素构成,每个元素代表一个网站导航项,各个元素通常包含对应链接,供用户跳转。面包屑导航示例首页...

建站相关 typecho

thumbnail 2025-05-29

关于typecho中的路由知识

路由(Routing)是博客系统中将URL地址映射到具体处理逻辑的机制,它决定了当用户访问某个网址时,系统应该执行什么操作、显示什么内容。typecho站点一般都会开启伪静态,伪静态通过URL重写将"漂亮"的URL映射到实际的文件路径...

建站相关 typecho

thumbnail 2025-05-29

Typecho 模板中的翻译函数 _t 与 _e

在 Typecho 模板开发中,_t 和 _e 是用于国际化处理的函数,核心区别在于输出方式:"_t" 函数‌‌功能‌:获取翻译后的字符串但不直接输出,需结合 echo 使用。‌示例‌:<?php echo _t('欢迎语');...

建站相关 typecho

thumbnail 2025-05-26

typecho文章自定义字段的删除与修改

涉及数据库的操作,务必请提前做好备份!提前做好备份!!做好备份!!!小鸟数据的当前主题的缩略图字段命名为augPostThumb,这几天在尝试完善一下原有主题,下载了原站的数据库导入了测试站用于测试页面效果,测试主题的缩略图相关字段拟...

建站相关 typecho

thumbnail 2025-05-26

typecho的文章自定义字段的知识笔记

在typecho中,除了可以自定义设置项之外,我们也可以给文章自定义一些额外的字段,比如给文章编辑界面添加一个缩略图选项,或者增加一个keywords输入框,用来修改编辑当前内容页的关键词信息。// 主题设置 function th...

建站相关 typecho