在网站运营中,搜索引擎优化(SEO)是提升网站可见度的关键环节。而页面标题(Title)和描述(Description)作为搜索引擎抓取和用户浏览时首先看到的信息,其重要性不言而喻。安企CMS(AnQiCMS)深知这一点,因此在模板中获取和显示这些SEO元素提供了灵活且强大的机制。
安企CMS的TDK(Title, Description, Keywords)机制概览
安企CMS在处理页面TDK时,采取了一种智能的层级和上下文感知机制。这意味着当你访问不同的页面类型时(如文章详情页、分类列表页、单页、甚至网站首页),系统会自动判断当前页面的类型,并优先尝试获取该页面自身所配置的SEO标题和描述。
具体来说:
- 内容级别优先: 如果你为某篇文章、某个分类或某个单页在后台单独设置了SEO标题和描述,系统会优先使用这些内容。
- 内容字段提取: 若内容自身没有明确的SEO描述字段,或者你未填写,系统会智能地从该内容的“简介”字段(例如文章的“文档简介”、分类的“分类简介”)中提取一部分文字作为页面的Meta Description。
- 全局设置兜底: 如果上述两者都没有获取到有效内容,系统会回退到“首页TDK设置”中配置的全局标题和描述。
这种机制确保了无论你是否为每个页面都进行了精细的TDK配置,网站都能有一个合理且对SEO友好的标题和描述。
核心:万能TDK标签——{% tdk %}
在安企CMS的模板设计中,获取页面SEO标题和描述最便捷、最推荐的方式是使用万能的{% tdk %}标签。这个标签的神奇之处在于它能根据当前页面的上下文,智能地输出最合适的SEO信息。
要获取当前页面的SEO标题,你可以在模板的<head>区域使用:
<title>{% tdk with name="Title" %}</title>
这段代码会根据你访问的页面类型,自动输出该页面的**标题。例如,如果访问的是文章详情页,它会输出文章的SEO标题(或文章标题);如果访问的是分类列表页,它会输出分类的SEO标题(或分类名称);如果是首页,则会输出首页TDK设置中的标题。
同样地,获取当前页面的SEO描述和关键词也非常简单:
<meta name="description" content="{% tdk with name="Description" %}">
<meta name="keywords" content="{% tdk with name="Keywords" %}">
这里的name="Description"和name="Keywords"参数分别用于指示标签获取页面的描述和关键词。
灵活控制标题显示
{% tdk with name="Title" %}标签还提供了额外的参数,让你能更灵活地控制标题的显示方式。
附加网站名称: 很多时候,我们希望页面标题在搜索引擎中显示为“页面标题 - 网站名称”或“页面标题 | 网站名称”。你可以通过
siteName=true和sep参数来实现:<title>{% tdk with name="Title" siteName=true sep=" | " %}</title>这样,页面的
<title>标签内容就会自动组合成[当前页面标题] | [网站名称]的形式,例如“安企CMS模板:获取SEO标题与描述 | 安企CMS官方网站”。sep参数用于定义分隔符,默认为-。显示父级分类标题: 在某些分类列表页或详情页,你可能希望标题中包含其父级分类的名称,可以通过
showParent=true参数实现。
深度定制:直接获取文档/分类/页面SEO信息
虽然{% tdk %}标签已经足够智能,可以满足绝大部分需求,但在某些特殊情况下,你可能需要直接获取特定文档、分类或单页的SEO字段值,而不是由{% tdk %}标签智能组合后的结果。
例如,如果你想在一个文档详情页的某个区域单独显示该文档的SEO标题,而不是用作页面的<title>标签内容,你可以使用archiveDetail标签:
{% archiveDetail with name="SeoTitle" %}
类似地,对于分类页面:
{% categoryDetail with name="SeoTitle" %}
{% categoryDetail with name="Description" %}
{% categoryDetail with name="Keywords" %}
对于单页面:
{% pageDetail with name="SeoTitle" %}
{% pageDetail with name="Description" %}
{% pageDetail with name="Keywords" %}
这些标签会直接输出该内容类型(文档、分类、单页)在后台配置的相应SEO字段值。一般而言,我们推荐优先使用{% tdk %}标签来构建页面的标准<title>和<meta>标签,因为它能更好地处理各种页面类型和未设置内容的fallback逻辑。而直接获取特定字段的方式,更多适用于需要展示这些原始SEO数据作为页面内容一部分的场景。
实际操作步骤
将这些标签应用到你的网站模板中非常直接:
定位模板文件: 通常,网站的公共头部(包含
<head>标签)会集中在一个名为base.html或类似名称的模板文件中,位于你当前主题的/template目录下。找到
<head>区域: 在这个文件中,找到<head>到</head>之间的代码块。插入TDK标签: 在
<head>区域内,替换或添加以下代码:”`html <!DOCTYPE html>
<meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- 页面SEO标题 --> <title>{% tdk with name="Title" siteName=true sep=" - " %}</title> <!-- 页面SEO关键词 --> <meta name="keywords" content="{% tdk with name="Keywords" %}"> <!-- 页面SEO描述 --> <meta name="description" content="{% tdk with name="Description" %}"> <!-- 其他head内容... --><!-- 网站内容 -->