织梦栏目关键词如何调用?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 织梦建站 正文

使用织梦默认的 keywords 标签(最常用、最直接)

这是最简单直接的方法,适用于大多数情况,织梦系统会自动获取当前栏目的“关键词”字段内容。

织梦栏目关键词调用
(图片来源网络,侵删)

适用场景:

  • 在栏目列表页 (list_*.php) 中调用当前栏目的关键词。
  • 页 (article_*.php) 中调用当前栏目的关键词。

代码示例:

将以下代码直接放置在你需要显示关键词的HTML模板文件中即可。

<meta name="keywords" content="{dede:field name='keywords'/}" />

代码解释:

  • {dede:field name='keywords'/} 是织梦的一个基本字段调用标签。
  • name='keywords' 指定了要调用的是“关键词”这个字段。
  • 在不同页面,它调用的内容是不同的:
    • 在栏目列表页:它会调用当前栏目的“关键词”。
    • :它会调用当前文章的“关键词”,如果文章没有设置关键词,并且开启了“自动获取关键词”功能,它会尝试从文章内容中提取。

调用父级栏目的关键词(用于SEO层级优化)

我们希望在子栏目页面上同时显示父级栏目的关键词,以增强主题相关性。

适用场景:

  • 在一个子栏目的列表页,希望显示“父栏目关键词, 子栏目关键词”这样的组合。

代码示例:

这个方法需要用到织梦的SQL查询标签 {dede:sql}

织梦栏目关键词调用
(图片来源网络,侵删)
{dede:sql sql="SELECT keywords FROM dede_arctype WHERE id=~typeid~"}
    {dede:field name='keywords'/}
    {/dede:sql}

代码解释:

  1. {dede:sql sql="..."}:执行自定义SQL语句。
  2. SELECT keywords FROM dede_arctype WHERE id=~typeid~
    • dede_arctype 是织梦存放栏目的数据表(如果你的表前缀不是 dede_,请修改)。
    • id=~typeid~~typeid~ 是织梦的一个特殊变量,代表当前栏目的ID,这句SQL的作用就是“查询当前栏目ID对应的栏目的关键词”。
  3. {dede:field name='keywords'/}:在 {dede:sql} 标签内部,使用 {dede:field} 来输出查询结果。

如何组合父级和当前栏目关键词?

如果你想将它们组合在一起,可以这样写:

<!-- 先获取父级栏目关键词 -->
{dede:sql sql="SELECT keywords FROM dede_arctype WHERE id=~topid~"}
    {dede:field name='keywords'/},
{/dede:sql}
<!-- 再获取当前栏目关键词 -->
{dede:field name='keywords'/}
  • ~topid~ 是另一个特殊变量,代表当前栏目的顶级栏目ID,如果你只想获取直接父级,需要更复杂的逻辑,通常使用 ~typeid~ 并通过 parentid 字段来查找父级,但不如直接用 ~topid~ 常用。

调用顶级栏目的关键词(最常用且推荐的多级栏目SEO方法)

这是强烈推荐的方法,尤其对于有三级或更多层级的网站,它能确保所有页面都关联到网站的核心主题。

织梦栏目关键词调用
(图片来源网络,侵删)

适用场景:

  • 网站结构:首页 -> 产品中心 -> 手机 -> iPhone 15
  • 在“iPhone 15”的文章页或列表页,我们希望关键词能带上“产品中心”和“手机”这两个核心层级词。

代码示例:

结合使用 {dede:sql}~topid~ 变量。

{dede:sql sql="SELECT keywords FROM dede_arctype WHERE id=~topid~"}
    {dede:field name='keywords'/},
{/dede:sql}
{dede:field name='keywords'/}

代码解释:

  • ~topid~ 会自动获取当前栏目所属的顶级栏目的ID。
  • SELECT keywords FROM dede_arctype WHERE id=~topid~ 就是去查询顶级栏目的关键词。
  • 最后再加上当前栏目的关键词。

示例输出: 假设“产品中心”的关键词是“智能手机, 5G手机”,“手机”的关键词是“苹果手机, iPhone”,当前“iPhone 15”的关键词是“iPhone15, 苹果新款手机”。 那么最终输出的关键词将是: 智能手机, 5G手机, 苹果手机, iPhone, iPhone15, 苹果新款手机

这对于SEO非常有利,关键词覆盖面广且相关性强。


调用多个同级或相关栏目的关键词

在某些特殊布局下,你可能想在当前页面调用其他兄弟栏目的关键词。

适用场景:

  • 在一个“公司新闻”列表页,旁边有一个“行业动态”列表,你可能想在“公司新闻”页面的keywords里也带上“行业动态”的关键词。

代码示例:

这个需要知道兄弟栏目的ID,或者通过 parentid 来查询。

<!-- 假设我们要调用ID为 5 的兄弟栏目的关键词 -->
{dede:sql sql="SELECT keywords FROM dede_arctype WHERE id=5"}
    {dede:field name='keywords'/},
{/dede:sql}
{dede:field name='keywords'/}

更灵活的写法(获取同一父级下的所有兄弟栏目关键词):

{dede:sql sql="SELECT GROUP_CONCAT(keywords) as all_keywords FROM dede_arctype WHERE parentid=~typeid~ AND id != ~typeid~"}
    {dede:field name='all_keywords'/},
{/dede:sql}
{dede:field name='keywords'/}
  • GROUP_CONCAT(keywords) 是一个MySQL函数,可以将多行的 keywords 字段合并成一个字符串,用逗号分隔。
  • parentid=~typeid~ 查找与当前栏目同属一个父级的栏目。
  • AND id != ~typeid~ 排除掉当前栏目本身。

总结与最佳实践

方法 适用场景 优点 缺点
方法一 {dede:field name='keywords'} 基础SEO,调用当前页面/栏目的关键词 简单、直接、高效 关键词范围较窄,层级关系不强
方法二 调用父级关键词 二级栏目结构,希望突出上级主题 增加了上级主题的相关性 逻辑稍复杂,对多级栏目支持不佳
方法三 调用顶级关键词 (强烈推荐)多级栏目结构,强化网站核心主题 SEO效果最好,关键词覆盖广,逻辑清晰 需要理解 ~topid~ 变量
方法四 调用兄弟栏目关键词 特殊页面布局,希望关联同级内容 增加页面间的关键词关联 使用场景较少,需要明确指定栏目ID

最佳实践建议:

对于绝大多数网站,特别是超过两级的栏目结构,方法三(调用顶级栏目关键词 + 当前栏目关键词) 是最优选择,它既能保证页面的独特性,又能牢牢锚定网站的核心主题,对搜索引擎非常友好。

使用提示:

  1. 在后台设置栏目关键词时,请使用简洁、相关、热门的词,用英文逗号 隔开。
  2. 不要堆砌过多无关的关键词,每个页面的关键词数量建议控制在3-5个核心词或短语组合。
  3. 确保你的模板文件(如 list_article.htm, article_article.htm)中已经包含了 <head> 标签,并将 {dede:field name='keywords'/} 放置在 <meta name="keywords" content="..."> 标签内。
-- 展开阅读全文 --
头像
织梦如何添加音乐播放器?
« 上一篇 前天
C语言结构体数组成员如何初始化与使用?
下一篇 » 前天

相关文章

取消
微信二维码
支付宝二维码

目录[+]