dede调用具体关键词

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 DEDE建站 正文

页(article_article.htm)中调用并链接关键词

这是最核心的需求,通常用于在文章末尾或文章内容中自动为关键词加上链接,指向一个自定义的列表页面(如关键词专题页)。

方法1:使用{dede:field.keywords/}结合str_replace函数(最推荐)

这是最灵活、最常用的方法,它可以在模板中直接处理关键词字符串,将其分割并加上链接。

操作步骤:

  1. 准备关键词列表页: 你需要一个用来展示所有关键词文章的列表页面,最简单的方法是复制一个列表页模板(如 list_article.htm),重命名为一个新文件,keywords_list.htm

  2. 修改keywords_list.htm: 打开你刚刚创建的 keywords_list.htm 文件,在适当位置(如 {dede:list} 标签上方)添加以下代码,用于接收URL传递过来的关键词参数,并作为标题和筛选条件:

    <h1>关键词:[field:keywords/]</h1>
    {dede:list pagesize='20' keyword='[field:keywords/]'}
    <!-- 这里是正常的列表内容 -->
    <a href="[field:arcurl/]">[field:title/]</a>
    {/dede:list}

    注意keyword='[field:keywords/]' 这句是关键,它告诉列表页只显示包含该关键词的文章,这里的 [field:keywords/] 指的是URL中传递过来的 keywords 参数。

  3. 修改文章内容页模板 article_article.htm: 在你想要显示关键词链接的位置(比如文章末尾),添加以下代码:

    {dede:field name='keywords' runphp='yes'}
      if(@me != ''){
        $kws = explode(',', @me);
        @me = '';
        foreach($kws as $k){
          $k = trim($k);
          if($k != ''){
            // 这里是链接地址,根据你的实际目录结构修改
            // urlencode() 函数用于处理中文关键词,防止乱码
            @me .= "<a href='/keywords_list.php?keywords=".urlencode($k)."'>".$k."</a> ";
          }
        }
      }else{
        @me = '该文章暂无关键词';
      }
    {/dede:field}

    代码解释

    • {dede:field name='keywords' runphp='yes'}:获取文章的关键词字段,并开启PHP运行。
    • explode(',', @me):将关键词字符串(用逗号分隔)分割成一个数组。
    • foreach($kws as $k):遍历这个数组。
    • urlencode($k):对关键词进行URL编码,这是处理中文关键词的关键一步,否则链接会出错。
    • "/keywords_list.php?keywords=":这是你指向关键词列表页的URL。/keywords_list.php 是你第1步中创建的模板文件名,请根据你的实际情况修改。
    • @me .= ...:将处理好的链接字符串累加到输出变量 @me 中。
    • if(@me != ''):判断该文章是否有关键词,如果没有则显示提示信息。
  4. 创建关键词列表页: 登录DedeCMS后台,在“模板” -> “默认模板管理”中,找到“列表模板管理”。 点击“增加一个自定义列表模板”,模板文件名填写 keywords_list,选择对应的模板风格(如 default),模板代码选择你刚才创建的 keywords_list.htm 文件。 保存后,系统会生成一个名为 keywords_list.php 的文件。

当你打开任意一篇文章,如果它有关键词,就会在指定位置生成指向关键词专题页的链接。


方法2:使用{dede:tag}标签(如果开启了文章标签功能)

如果你的网站同时使用了DedeCMS的“文章标签”功能,并且希望调用的是标签而不是关键词,可以使用这个方法,它更规范,但需要额外的设置。

操作步骤:

  1. 确保标签功能正常:在后台“系统” -> “系统基本参数” -> “核心设置”中,确保“使用关键字 as tag”是“是”。

  2. 页模板中调用

    {dede:tag sort='hot' getall='0' num='5'}
      <a href="[field:link/]">[field:tagname/]</a>
    {/dede:tag}

    标签属性说明

    • sort='hot':按标签使用热度排序,可选值:hot(热门), new(最新), rand(随机)。
    • getall='0':0表示调用当前文章的标签,1表示调用全站所有标签。
    • num='5':调用标签的数量。

    这种方法的好处是,[field:link/] 会自动生成指向该标签列表页的链接,无需手动构造URL。


在列表页(list_article.htm)或首页调用当前栏目或全局关键词

这个需求相对简单,直接使用DedeCMS提供的标签即可。

调用当前栏目的关键词

在列表页模板 list_article.htm 中,使用:

{dede:field.seotitle /}  <!-- 调用栏目SEO标题,通常也包含关键词 -->
{dede:field.keywords /} <!-- 直接调用栏目关键词 -->

调用全站的关键词(在后台设置)

这个关键词是在后台“系统” -> “系统基本参数” -> “站点设置”中填写的“站点关键字”。

在首页模板 index.htm 或任何其他模板中调用:

{dede:global.cfg_keywords/}

总结与对比

场景 推荐方法 优点 缺点
文章页内链 方法1:{dede:field.keywords} + str_replace 最灵活,可完全自定义链接和样式,适合SEO内链优化。 需要手动创建列表页和编写PHP代码,对新手稍复杂。
文章页调用 方法2:{dede:tag} 规范、方便,如果网站已使用标签功能,这是最佳选择。 依赖标签系统,与“关键词”字段是分开的,需要额外维护。
列表页/首页 直接调用{dede:field.keywords}{dede:global.cfg_keywords/} 非常简单,一行代码搞定。 功能单一,主要用于展示,无法直接生成链接。

核心建议

  • 如果你的主要目的是SEO内链优化,强烈推荐使用 方法1,虽然设置步骤多一点,但效果最好,也最可控。
  • 如果你的网站已经习惯了使用“文章标签”,并且希望关键词和标签系统打通,方法2 是不二之选。
  • 对于简单的展示需求,直接使用基础调用标签即可。

希望这个详细的解答能帮助你解决问题!如果在操作中遇到任何困难,可以随时提问。

-- 展开阅读全文 --
头像
dede下一页调用方法是什么?
« 上一篇 02-28
dede百度搜索功能如何优化提升搜索效果?
下一篇 » 02-28

相关文章

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

目录[+]