在网站运营中,文章详情页的标题(<title>标签)对搜索引擎优化(SEO)至关重要。一个精心设计的标题不仅能提高文章在搜索结果中的点击率,还能帮助搜索引擎更好地理解页面内容。AnQiCMS 提供了灵活的机制,让你可以根据自己的SEO策略,轻松自定义文章详情页的标题显示格式。

这篇文章将详细介绍如何在 AnQiCMS 中调整文章详情页的标题,以满足不同的SEO需求。

一、理解 AnQiCMS 中的标题构成

在 AnQiCMS 中,文章详情页的标题通常由几个部分组成,例如文章标题、所属分类名称、以及网站名称等。默认情况下,AnQiCMS 会根据你发布文章时填写的内容以及系统全局设置来自动生成 <title> 标签。

AnQiCMS 提供了一个专门用于控制页面标题、关键词和描述(TDK)的万能标签tdk。这个标签是自定义标题显示格式的核心工具。此外,每篇文章在后台编辑时,都可以设置一个“SEO标题”字段,这个字段赋予了你为特定文章定义独立标题的能力。

二、利用文章本身的SEO标题字段

最直接且优先级最高的标题自定义方式,是利用每篇文章的“SEO标题”字段。

当你发布或编辑文章时,在“其他参数”的折叠框内,会看到一个“SEO标题”的输入框。 操作方法:

  1. 登录 AnQiCMS 后台。
  2. 进入“内容管理” -> “文档管理”。
  3. 点击“添加新文档”或编辑现有文档。
  4. 在文档编辑页面,找到“其他参数”区域,展开它。
  5. 在“SEO标题”字段中,填写你希望展示在文章详情页<title>标签中的完整标题。

效果: 如果你在这里填写了内容,那么 AnQiCMS 会优先使用这个字段作为文章详情页的标题,而忽略默认的文章标题。这非常适合那些需要为特定文章编写高度优化且与文章实际标题可能略有不同的SEO标题的场景。

三、调整模板文件中的 TDK 标签

如果你的标题策略需要更全局或更动态的控制(例如,所有文章都遵循“文章标题 - 分类名称 - 网站名称”的格式),那么你需要修改模板文件。

AnQiCMS 模板基于 Django 模板引擎语法,这意味着你可以通过简单的标签来控制内容的显示。文章详情页的模板文件通常位于你的模板主题目录下的 archive/detail.html

操作步骤:

  1. 定位模板文件:

    • 通过FTP或文件管理工具访问你的 AnQiCMS 安装目录。
    • 进入 template 文件夹,然后找到你当前使用的模板主题名称(例如 default)。
    • 在模板主题文件夹内,找到 archive 文件夹,其中的 detail.html 文件就是文章详情页的模板。
    • 建议: 在修改任何模板文件之前,请务必先备份原文件,以防操作失误。
  2. 修改标题标签: 打开 detail.html 文件,你通常会在 <head> 标签内找到类似 <title>...</title> 的结构。这里就是我们需要修改的地方。

    AnQiCMS 提供了 tdk 标签来帮助你构建标题。以下是几种常见的自定义标题格式及其实现方式:

    • 只显示文章标题(SEO标题优先): 这是 tdk 标签的默认行为,它会优先使用文章的“SEO标题”,如果未设置,则使用文章本身的标题。

      <title>{% tdk with name="Title" %}</title>
      

      这种方式能够确保你的页面标题简洁明了,直接突出文章主题。

    • 文章标题 + 网站名称: 许多网站的标题格式是“文章标题 - 网站名称”。这有助于提升品牌曝光度。

      <title>{% tdk with name="Title" siteName=true %}</title>
      

      siteName=true 参数会告诉 tdk 标签在文章标题后自动加上在“后台设置”->“全局设置”中配置的“网站名称”。

    • 文章标题 + 分隔符 + 网站名称: 如果你想使用不同于默认的分隔符(默认是 -),可以通过 sep 参数进行设置。

      <title>{% tdk with name="Title" siteName=true sep=" | " %}</title>
      

      这里将分隔符改为了 |

    • 文章标题 + 父级分类标题 + 网站名称: 对于层级较深或分类信息对SEO有帮助的文章,可以显示其所属的父级分类标题。

      <title>{% tdk with name="Title" showParent=true siteName=true %}</title>
      

      showParent=true 会在文章标题后显示其父级分类的标题。

    • 更灵活的自定义组合(使用 archiveDetailsystem 标签): 如果 tdk 标签提供的选项仍不能满足你非常特殊的标题组合需求,你可以通过直接调用 archiveDetail 标签获取文章详情,以及 system 标签获取网站全局信息,然后手动拼接标题。

      例如,你可能需要显示“文章标题 - 网站名称 - 网站描述”这样的格式:

      {% archiveDetail articleTitle with name="Title" %} {# 获取文章标题 #}
      {% system siteName with name="SiteName" %} {# 获取网站名称 #}
      {% tdk siteDescription with name="Description" %} {# 获取网站描述,这里我们借用tdk标签来获取description #}
      <title>{{ articleTitle | default:"" }} - {{ siteName | default:"" }} - {{ siteDescription | default:"" }}</title>
      
      • 这里使用了 archiveDetail 来获取文章标题(优先SEO标题,其次是实际标题)。
      • system 标签用于获取全局设置中的“网站名称”。
      • tdk 标签这里可以用来获取页面的描述信息。
      • default:"" 过滤器(来自 filter-default.md)用于防止变量为空时输出 nil,让页面显示更干净。
      • 注意:这种手动拼接的方式,你需要自己处理SEO标题和文章标题的优先级,以及分类名称的获取(可以通过 categoryDetail 标签实现)。
  3. 保存并测试: 保存修改后的 detail.html 文件,并上传到服务器(如果是在本地修改)。然后访问网站的文章详情页,查看浏览器标签页的标题是否已按预期显示。

四、操作步骤总结

  1. 确定SEO策略: 明确你希望文章详情页标题遵循的格式和包含的信息。
  2. 利用“SEO标题”字段: 对于需要精细控制单篇文章标题的情况,直接在后台编辑文章时填写“SEO标题”字段。
  3. 修改模板文件: 对于全局或批量生效的标题格式,定位并编辑 template/{你的模板主题}/archive/detail.html 文件。
  4. 使用 tdk 标签: 根据上述示例,选择或组合 tdk 标签的参数来生成你想要的标题格式。
  5. (可选)手动组合: 如果 tdk 标签无法满足,则通过 archiveDetailcategoryDetailsystem 等标签手动获取数据并拼接。
  6. 保存并测试: 刷新文章详情页,检查浏览器标题是否符合预期。

五、注意事项

  • 模板备份: 在修改任何模板文件之前,务必进行备份。
  • 清理缓存: