,relkeyword},使用 `{$keyword}` 变量,使用 `{dede:hotwords}` 标签,使用 `{dede:relkeyword}` 标签">

织梦搜索关键词如何调用?

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

使用织梦内置的 hotsearch 标签(最简单、最推荐)

这是织梦官方提供的最简单直接的调用方法,专门用于显示热门搜索关键词,它会自动从 dede_search_keywords 数据表中读取数据。

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

标签语法

{dede:hotsearch num='10' subday='30'}
    <a href='/plus/search.php?keyword=[field:keyword]'>[field:keyword]</a>
{/dede:hotsearch}

参数说明

  • num='10':显示的关键词数量,10 表示显示10个热门词。
  • subday='30':统计的时间范围,单位是天。30 表示统计最近30天内的搜索次数,如果需要显示所有时间的热词,可以设置一个很大的数字,如 subday='36500',或者直接删除这个参数(默认为30天)。
  • [field:keyword]:这是关键词的字段名,用于获取每个关键词的文本内容。

示例代码

在网站的页脚(footer)或者搜索框旁边,可以这样使用:

<div class="hot-search">
    <span>热门搜索:</span>
    {dede:hotsearch num='8' subday='30'}
        <a href="/plus/search.php?keyword=[field:keyword]" title="[field:keyword]">[field:keyword]</a>
    {dede:hotsearch}
</div>

优点

  • 无需修改任何PHP文件,纯模板标签实现。
  • 效率高,由系统底层直接处理。

缺点

  • 功能相对固定,无法进行复杂的自定义排序(除了按搜索次数,还想按关键词长度排序)。

使用自定义SQL查询(最灵活)

如果内置的 hotsearch 标签无法满足您的需求(需要自定义排序字段、添加条件等),您可以直接在模板中使用 dede:sql 标签执行自定义的SQL语句。

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

确认数据表

织梦的搜索关键词存储在 dede_search_keywords 表中,主要字段有:

  • keyword:关键词文本。
  • count:搜索次数。
  • resultnum:搜索结果数。
  • lasttime:最后一次搜索时间(Unix时间戳)。

编写SQL语句

假设我们要调用搜索次数最多的10个关键词,SQL语句如下:

SELECT keyword, count FROM dede_search_keywords ORDER BY count DESC LIMIT 10

在模板中使用 dede:sql
{dede:sql sql='SELECT keyword, count FROM dede_search_keywords ORDER BY count DESC LIMIT 10'}
    <a href='/plus/search.php?keyword=[field:keyword]'>[field:keyword]</a>
{/dede:sql}

高级示例:调用“最近7天内被搜索超过5次”的热词

{dede:sql sql='SELECT keyword, count FROM dede_search_keywords WHERE lasttime > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 7 DAY)) AND count > 5 ORDER BY count DESC LIMIT 8'}
    <a href='/plus/search.php?keyword=[field:keyword]' title="[field:keyword] (搜索[field:count]次)">[field:keyword]</a>
{/dede:sql}

SQL语句解释

  • WHERE lastime > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 7 DAY)):筛选出 lasttime 字段在过去7天内的记录。
  • AND count > 5:并且搜索次数大于5。
  • ORDER BY count DESC:按搜索次数降序排列。
  • LIMIT 8:只取前8条结果。

优点

  • 极度灵活,可以实现任何复杂的查询逻辑。
  • 可以获取到 countresultnum 等更多字段,用于显示更丰富的信息。

缺点

  • 需要用户具备一定的SQL知识。
  • 如果SQL语句写得有误,可能会导致页面报错。
  • 每次页面加载都会执行一次查询,如果查询复杂且数据量大,可能会对服务器造成轻微性能影响(但对于这种小查询,影响可以忽略不计)。

手动添加关键词(用于固定展示)

如果您想在页面上展示一些固定的、预设的热门关键词(品牌名、核心产品等),而不是动态获取的,可以直接在模板中写死。

示例代码

<div class="fixed-keywords">
    <span>推荐搜索:</span>
    <a href="/plus/search.php?keyword=织梦模板">织梦模板</a>
    <a href="/plus/search.php?keyword=响应式网站">响应式网站</a>
    <a href="/plus/search.php?keyword=网站建设">网站建设</a>
    <a href="/plus/search.php?keyword=PHP开发">PHP开发</a>
</div>

优点

  • 完全可控,展示的内容由自己决定。
  • 性能最好,无任何数据库查询。

缺点

  • 不动态,需要手动维护关键词列表。
  • 无法反映用户的真实搜索行为。

总结与建议

方法 优点 缺点 适用场景
{dede:hotsearch} 简单、高效、官方支持 功能固定,自定义性差 绝大多数情况下的首选,用于显示通用热门搜索。
{dede:sql} 功能强大、极其灵活 需要SQL知识,有轻微性能开销 需要复杂查询逻辑,如按时间、次数等多条件筛选排序。
手动添加 完全可控、性能最优 不动态,需手动维护 展示固定的、预设的品牌词或核心业务词。

给您的建议

  1. 优先使用方法一 ({dede:hotsearch}),它最简单也最稳定。
  2. 如果方法一无法满足您的特殊需求(您想展示“最近一周的热词”),再考虑使用方法二 ({dede:sql})
  3. 如果您想在特定位置展示一些与业务强相关的固定词,可以使用方法三作为补充。

希望这些信息能帮助您在织梦网站中成功调用搜索关键词!

-- 展开阅读全文 --
头像
dede获取顶级id
« 上一篇 昨天
织梦猫微信分享插件
下一篇 » 昨天
取消
微信二维码
支付宝二维码