如何获取当前页面的文档标题、内容和链接?

作为一位深谙AnQiCMS运作的网站运营人员,我深知获取当前页面内容的准确性和效率对于网站的日常管理和优化至关重要。AnQiCMS提供了直观且功能强大的模板标签,让我们可以轻松地从当前加载的页面中提取所需的文档标题、具体内容以及页面的标准链接。这不仅有助于我们进行前端展示的精细控制,也为SEO优化提供了坚实的基础。

获取当前页面的文档标题

当前页面的文档标题通常有两个层面的含义:一是HTML <title> 标签中显示给搜索引擎和浏览器用户的页面标题,这对于SEO至关重要;二是页面主体内容中作为主要标识的文档或文章标题。

针对HTML的 <title> 标签,AnQiCMS提供了 tdk 标签,我们可以通过 {% tdk with name="Title" %} 的方式来动态获取当前页面的标题。这个标签会自动根据当前页面的类型(文档、分类、单页等)智能地生成最合适的标题。它还支持通过 siteName=true 参数自动附加网站名称,通过 sep 参数自定义分隔符,以及 showParent=true 参数来显示父级分类的标题,这些都是根据后台配置自动调整的。

而在页面内容区域需要展示具体文档或文章的标题时,我们可以使用特定内容类型的详情标签。例如,如果当前页面是一篇文章或产品详情页,则使用 archiveDetail 标签,通过 {% archiveDetail with name="Title" %} 即可获取其标题。同样地,对于单页面,我们可以使用 {% pageDetail with name="Title" %};对于分类页面,则使用 {% categoryDetail with name="Title" %};对于标签页面,使用 {% tagDetail with name="Title" %}。这些标签在不指定ID或token的情况下,默认会获取当前页面对应的文档、单页、分类或标签的标题。

以下是获取页面标题的简要示例:

{# 获取HTML头部标题,并附加网站名称 #}
<title>{% tdk with name="Title" siteName=true %}</title>

{# 在页面主体内容中显示文章标题 #}
<h1>{% archiveDetail with name="Title" %}</h1>

提取当前页面的具体内容

获取当前页面的主体内容是构建动态网页的核心需求。AnQiCMS的详情标签能够精准地提取各类内容的详细信息。

对于文章或产品详情页,我们使用 archiveDetail 标签,通过 {% archiveDetail with name="Content" %} 便可获取文档的完整内容。这个标签在输出内容时非常灵活。例如,如果内容中包含HTML标签,为了确保它们能被正确渲染而不是作为纯文本显示,通常需要配合 |safe 过滤器,如 {{ archiveContent|safe }}。此外,如果内容包含图片,我们还可以利用 lazy="data-src" 等属性实现图片的懒加载,提升页面性能。当后台启用了Markdown编辑器时,内容会自动转换为HTML;如果需要手动控制转换行为,可以使用 render=truerender=false 参数。

类似地,如果当前页面是单页,我们可以使用 {% pageDetail with name="Content" %} 来获取其内容;对于分类页面,则使用 {% categoryDetail with name="Content" %};对于标签页面,使用 {% tagDetail with name="Content" %}。这些标签同样支持 |safe 过滤器以及Markdown渲染控制。

以下是获取页面内容的示例:

{# 获取文章主体内容,并确保HTML正确渲染 #}
<div>
    {%- archiveDetail articleContent with name="Content" lazy="data-src" render=true %}
    {{articleContent|safe}}
</div>

获取当前页面的链接地址

当前页面的链接地址同样是网站导航和SEO策略中不可或缺的一部分。AnQiCMS提供了多种方式来获取当前页面的标准URL。

最直接的方式是使用特定内容类型的详情标签。例如,对于文章或产品详情页,我们可以通过 {% archiveDetail with name="Link" %} 来获取其在网站上的绝对或相对链接。同样,对于单页面,使用 {% pageDetail with name="Link" %};分类页面使用 {% categoryDetail with name="Link" %};标签页面则使用 {% tagDetail with name="Link" %}。这些链接是根据当前页面的伪静态规则和内容结构自动生成的。

此外,对于SEO而言,设置规范链接(Canonical URL)至关重要,它能告诉搜索引擎当前页面的首选版本,避免内容重复问题。AnQiCMS通过 tdk 标签提供了这个功能,我们可以使用 {% tdk with name="CanonicalUrl" %} 来获取当前页面的规范链接。在模板中,我们通常会判断这个规范链接是否存在,如果存在,则将其放置在HTML的 <head> 区域内。

以下是获取页面链接的示例:

{# 获取文章的URL,可用于导航或分享按钮 #}
<a href="{% archiveDetail with name="Link" %}">阅读更多</a>

{# 在页面头部设置规范链接 #}
{%- tdk canonical with name="CanonicalUrl" %}
{%- if canonical %}
<link rel="canonical" href="{{canonical}}" />
{%- endif %}

通过这些灵活且智能的模板标签,AnQiCMS让网站运营人员能够高效地管理和呈现内容,无论是优化页面标题以提升搜索排名,还是精准控制内容展示以提升用户体验,亦或是确保页面链接的规范性以维护网站健康,都变得轻而易举。掌握这些标签的使用,是发挥AnQiCMS内容管理潜力的关键。

常见问题解答

AnQiCMS的详情标签(如archiveDetailpageDetailcategoryDetailtagDetail)在未明确指定idtoken参数时,会自动识别当前页面正在展示的内容类型,并提取该内容的相应字段。系统通过URL路径、路由规则以及内部上下文信息来智能判断当前页面的核心实体(例如,是哪篇文章、哪个分类、哪个单页或哪个标签页),从而自动获取其关联的数据。

您可以通过在详情标签中明确指定 idtoken 参数来获取非当前页面的数据。例如,如果您想在文章详情页中展示另一篇特定文章的标题,可以使用 {% archiveDetail with name="Title" id="123" %},其中123是目标文章的ID。通过这种方式,您可以在任何页面调用任意指定内容类型的数据,实现更复杂的页面布局和内容聚合。

tdk标签主要用于获取与整个页面相关的元数据,如HTML <title><meta name="keywords"><meta name="description"> 以及 <link rel="canonical">。这些信息是针对整个页面而非页面中的某个具体内容项。而archiveDetailpageDetail等标签则专注于获取页面中核心内容实体(例如一篇文章、一个产品)自身的详细字段,如其标题、主体内容和自身链接。在实际应用中,它们协同工作:tdk标签通常用于HTML头部,影响搜索引擎收录和浏览器显示;而内容详情标签则用于页面主体,用于展示用户正在浏览的具体信息。