当前位置:网站首页 >  攻略

迅睿CMS栏目SEO标题自定义设置与调用代码详解

时间:2026年06月14日 18:48:01 来源:易频IT社区

一、后台栏目SEO标题基础配置

在进行前端模板开发之前,必须先在后台完成基础数据的录入。迅睿CMS(Xunruicms)将栏目名称与SEO标题分离,这是为了满足“用户看到的标题”与“搜索引擎看到的标题”不一致的场景。默认情况下,如果未填写SEO标题,系统会自动使用栏目名称。

1.1 定位栏目设置入口

登录迅睿CMS后台管理界面,点击顶部菜单栏的【内容】,在左侧下拉菜单中选择【栏目管理】。在栏目列表中,找到你需要配置SEO的栏目,点击该栏目行最右侧的【修改】按钮(图标通常为笔形)。

1.2 填写SEO核心字段

进入栏目修改页面后,找到【SEO设置】选项卡。点击展开该选项卡,你会看到三个核心字段:

  • SEO标题:这是本文的核心。输入针对搜索引擎优化的长尾词标题。建议控制在30个汉字以内,包含核心关键词。例如,栏目名称是“产品中心”,SEO标题可以设置为“某某公司高端智能产品中心 - 专业设备供应商”。
  • SEO关键词:输入该栏目的核心关键词,多个关键词之间请使用英文逗号(,)隔开。
  • SEO描述:输入该栏目的简介摘要,建议控制在80-120个汉字之间,需要通顺并包含关键词。

填写完毕后,点击页面底部的【保存】strong>按钮。此时,后台数据配置已完成,接下来需要通过代码在前端页面调用这些数据。

二、前端模板标签调用核心逻辑

迅睿CMS的前端模板引擎支持直接调用当前栏目的数据。在栏目列表页(category.html)和内容页(show.html)中,调用栏目SEO标题的逻辑有所不同,需要分别处理。

2.1 列表页Title标签完整代码

打开你的网站模板目录,找到栏目列表页文件,通常是category.htmllist.html。在HTML的区域,找到</code>标签。</p> <p>默认的<code><title></code>标签代码可能只是简单的<code><title>{$cat.name}。我们需要将其替换为具备“回退机制”的代码:即优先显示SEO标题,如果SEO标题为空,则显示栏目名称。

请直接复制以下代码替换原有的Title标签:

```html {if $cat.seo_title} {$cat.seo_title} - {$site.name} {else} {$cat.name} - {$site.name} {/if} ```

代码解析:

  • $cat:表示当前栏目的数据对象。
  • $cat.seo_title:表示后台填写的SEO标题字段。
  • $cat.name:表示后台填写的栏目名称字段。
  • :这是迅睿CMS的模板语法,用于判断。如果SEO标题存在,则输出SEO标题,否则输出栏目名称。
  • $site.name:网站名称,通常放在标题最后以增强品牌曝光。

2.2 列表页Keywords和Description调用

同样在区域,找到,使用相同的逻辑进行替换。

Keywords替换代码:

```html ```

Description替换代码:

```html ```

三、内容页调用栏目SEO标题

在内容详情页(show.html)中,我们需要展示当前文章所属栏目的SEO标题。由于内容页的默认变量是$title(文章信息),我们需要通过$catid(栏目ID)来反向获取栏目信息。

3.1 获取栏目数据的标签写法

在show.html的区域之前或者模板顶部,我们需要先查询出当前栏目的数据。迅睿CMS提供了{category ...}标签来实现这一功能。

请在标签上方或者合适的位置插入以下代码:

```html {category module=share id=$catid return=c} {/category} ```

3.2 在内容页Title中应用

获取到栏目数据变量$c后,我们就可以在</code>标签中使用了。通常内容页的标题结构是“文章标题 - 栏目SEO标题 - 网站名称”。</p> <p>请将show.html中的<code><title></code>标签修改为:</p> ```html <title> {$title.title} - {if $c.seo_title} {$c.seo_title} {else} {$c.name} {/if} - {$site.name} ```

迅睿CMS栏目SEO标题自定义设置与调用代码详解

注意: 上述代码必须包裹在{category ...}标签的内部,或者确保在调用前变量$c已经可用。为了代码结构清晰,建议直接写在Title标签外部进行赋值,或者使用简写方式。

更推荐的简写调用方式(直接在标签中调用):

```html {$title.title} - {dr_cat_value($catid, 'seo_title') ? dr_cat_value($catid, 'seo_title') : dr_cat_value($catid, 'name')} - {$site.name} ```

代码解析:

  • dr_cat_value($catid, 'seo_title'):这是迅睿CMS的万能函数调用,直接通过栏目ID获取字段的值。
  • 使用PHP的三元运算符语法? :进行判断,如果SEO标题有值则显示,无值则显示栏目名称。这种方式不需要在头部写额外的循环标签,更加简洁。

四、进阶实战:标题层级拼接与动态变量

为了进一步提升SEO效果,我们经常需要在栏目SEO标题中自动拼接上级栏目名称,或者加入一些特定的字符。迅睿CMS支持在模板中进行灵活的字符串拼接。

4.1 父子栏目名称自动拼接

如果你的网站层级较深,例如“产品中心 > 数码产品 > 智能手机”,在“智能手机”这个栏目的列表页标题中,你可能希望显示为“智能手机 - 数码产品 - 产品中心”。

在category.html中,可以使用以下代码实现层级面包屑式的Title:

```html {if $cat.seo_title} {$cat.seo_title} {else} {$cat.name} {/if} {if $cat.pid} - {dr_cat_value($cat.pid, 'name')} {/if} - {$site.name} ```

代码解析:

  • $cat.pid:当前栏目的父级ID。
  • {if $cat.pid} ... {/if}:判断是否存在父级栏目。如果存在,就调用父级栏目的名称。
  • dr_cat_value($cat.pid, 'name'):通过父级ID获取父级栏目名称。

4.2 利用栏目目录名做URL伪静态配合

在设置SEO标题时,为了URL的美观,通常栏目目录名(dirname)也应该包含关键词。虽然这属于URL优化范畴,但与标题相辅相成。

在后台栏目设置中,确保【生成HTML文件名】(即目录名)包含英文关键词。例如,栏目名为“新闻中心”,目录名可设为news。这样生成的URL是/domain/news/,配合Title标签中的“新闻中心”,相关性更强。

五、常见问题排查与修复

在按照上述步骤操作后,如果前台页面没有正确显示SEO标题,请按照以下顺序排查。

5.1 缓存未更新

迅睿CMS具备强大的缓存机制。修改后台栏目配置或更新模板代码后,必须更新缓存。

解决步骤:进入后台 -> 【系统】 -> 【系统升级】 -> 点击“更新系统缓存”。或者在后台首页右上角点击“清除缓存”。如果使用了OPcache或Redis等服务器缓存,还需要重启服务或清理对应缓存。

5.2 模板文件路径错误

迅睿CMS支持PC端和移动端模板分离。如果你在手机端看不到效果,请检查是否修改了移动端对应的模板文件。

解决步骤:确认你的模板目录结构。通常PC端在/template/default/html/,移动端在/template/default/wap/。请确保两个目录下的category.htmlshow.html都进行了相应的代码修改。

5.3 变量作用域问题

在部分自定义的循环标签中,$cat变量可能会被覆盖。例如在首页循环调用栏目列表时,内部的$cat代表的是循环中的当前栏目,而不是当前页面所在的栏目。

解决步骤:在首页或非栏目页调用当前栏目信息时,建议使用{dr_cat_value($catid, 'seo_title')}函数直接通过ID获取,而不是依赖$cat变量,以避免变量污染。

5.4 编码与特殊字符问题

如果在SEO标题中使用了特殊符号,导致页面乱码或布局错位。

解决步骤:检查后台数据库字符集是否为utf8mb4。确保模板文件的编码格式是UTF-8(无BOM)。在HTML头部确认有

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图