在网站内容运营中,页面的“标题”(Title)、“关键词”(Keywords)和“描述”(Description),也就是我们常说的 TDK,对搜索引擎优化(SEO)起着至关重要的作用。一个结构良好且具有品牌辨识度的页面标题,不仅能帮助搜索引擎更好地理解页面内容,也能在搜索结果中吸引用户的注意力。安企CMS(AnQiCMS)提供了灵活的模板引擎,让我们能够精细地控制这些关键信息。

这篇文章将聚焦于如何在安企CMS中,巧妙地运用模板过滤器 add,为页面标题动态地添加品牌名或固定的后缀,从而确保品牌形象的一致性,并提升整体的SEO效果。

理解安企CMS的TDK管理机制

在安企CMS中,TDK通常通过后台编辑页面的SEO设置来管理。无论是文章详情、分类列表还是单页面,我们都可以在编辑时为它们单独设置SEO标题、关键词和描述。而在模板层面,安企CMS提供了强大的 tdk 标签来调用这些信息。例如,在 <head> 区域,我们常用这样的代码来显示页面标题:

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

这段代码会直接输出当前页面在后台设置的标题。然而,有时候我们希望所有的页面标题都能统一带上公司的品牌名称,或者一个特定的后缀,比如“ - 您的品牌名”或者“ | 专注于内容营销”。如果每个页面都手动添加,不仅工作量大,还容易出错,并且一旦品牌名需要变更,修改起来会非常繁琐。这时候,动态地添加这些信息就显得尤为重要。

add 过滤器:文本拼接的利器

安企CMS的模板引擎支持多种过滤器,其中 add 过滤器是进行字符串拼接和数字相加的强大工具。它的基本语法非常直观:{{ obj|add:obj2 }}。当 objobj2 都是字符串时,它们会被拼接起来;当它们是数字时,则会进行相加。正是这种字符串拼接的能力,让 add 过滤器成为动态构建页面标题的理想选择。

动态添加品牌名或固定后缀到页面标题

现在,我们来看看如何利用 add 过滤器在页面标题中动态添加品牌名或固定后缀。

方法一:添加一个固定的品牌名或后缀

假设我们希望所有页面的标题都以“ | 您的品牌名称”作为后缀。我们可以将这段固定的文本直接作为 add 过滤器的参数。

首先,通过 tdk 标签获取当前页面的主标题。然后,使用 add 过滤器将其与我们预设的后缀拼接起来。

<title>{% tdk with name="Title" %}|add:" | 您的品牌名称" %}</title>

这段代码的含义是:获取当前页面的 Title,然后在这个标题的末尾添加字符串“ | 您的品牌名称”。

方法二:动态获取系统设置中的品牌名

为了更好地管理品牌名,安企CMS通常允许我们在“全局功能设置”中定义一个网站名称(SiteName)或者自定义一个品牌参数。我们可以利用 system 标签来获取这些全局配置。

假设我们在后台的“全局功能设置”中,将“网站名称”设置为“AnQiCMS 内容管理系统”。

我们可以这样在 <title> 标签中使用 add 过滤器:

<title>{% tdk with name="Title" %}|add:" - " |add:{% system with name="SiteName" %}</title>

这里我们使用了两次 add 过滤器。第一次将页面的主标题与分隔符“ - ”拼接起来,第二次再将拼接后的结果与通过 system 标签获取到的“网站名称”进行拼接。这样,无论页面的主标题是什么,它最终都会以“ - AnQiCMS 内容管理系统”作为后缀。

举个例子,如果你的文章标题是“安企CMS快速入门”,那么最终的页面标题将是“安企CMS快速入门 - AnQiCMS 内容管理系统”。

方法三:利用 tdk 标签内置的 siteName 属性(便捷但灵活度较低)

实际上,安企CMS的 tdk 标签针对页面标题有一个内置的 siteName 属性,可以直接实现添加网站名称作为后缀的功能。

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

siteName=true 时,tdk 标签会自动获取后台“全局功能设置”中的“网站名称”并将其作为后缀添加到页面标题后,默认使用“ - ”作为分隔符。这种方式非常便捷,但如果你需要自定义分隔符、添加的文本不是网站名称,或者想将品牌名放在标题的前面,那么 add 过滤器会提供更大的灵活性。

实践建议与**位置

为了确保品牌名或后缀能够应用到所有页面,建议将包含 add 过滤器的 <title> 代码放置在模板的公共头部文件,例如 template/你的模板目录/bash.htmltemplate/你的模板目录/partial/header.html 中。这些文件通常会被 extendsinclude 到其他页面模板中,这样可以一次性修改并应用到全站。

在进行这项操作时,请务必关注SEO效果。动态添加的品牌名或后缀应该简短、明确,并避免过度堆砌关键词,以免影响用户体验和搜索引擎对页面标题的判断。同时,确保拼接后的标题长度适中,以便在搜索结果中完整显示。

常见问题解答 (FAQ)

Q1: add 过滤器是否只能拼接字符串,能进行数字运算吗?

是的,add 过滤器既可以用于拼接字符串,也可以用于数字相加。当 add 过滤器接收到两个数字类型的值时,它会执行数学上的加法运算。而当至少有一个值是字符串类型时,它就会尝试将所有值都转换为字符串并进行拼接。所以在动态添加品牌名的场景中,它会将页面的标题(字符串)与品牌名(字符串)拼接起来。

Q2: 除了 Title,我还能在 TDK 的 KeywordsDescription 中使用 add 过滤器来动态添加内容吗?

当然可以。add 过滤器同样适用于 KeywordsDescription 字段。例如,你可以在页面的关键词后面添加一些通用的品牌关键词: <meta name="keywords" content="{% tdk with name="Keywords" %}|add:",安企CMS,内容管理系统" %}"> 或者在描述中添加统一的引导语: <meta name="description" content="{% tdk with name="Description" %}|add:" 立即了解更多安企CMS功能!" %}"> 不过,请注意关键词和描述的字数限制以及相关性,避免因过度拼接而影响SEO效果。

Q3: 如果我想把品牌名放在标题的最前面,add 过滤器还能实现吗?

完全可以。只需调整 add 过滤器的拼接顺序即可。例如,如果你希望显示“您的品牌名称 - 页面标题”,可以这样编写: <title>{% system with name="SiteName" %}|add:" - " |add:{% tdk with name="Title" %}</title> 这里,我们首先获取品牌名,然后添加分隔符,最后拼接页面的实际标题,从而实现了品牌名前置的效果。