织梦CMS热门搜索如何调用?

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

织梦CMS提供了多种方式来实现热门搜索的调用,下面我将为你详细介绍最常用和最推荐的几种方法,从简单到高级,并附上代码示例。

织梦cms 热门搜索怎么调用的
(图片来源网络,侵删)

使用系统自带的标签(最简单、最推荐)

织梦CMS内置了{dede:hotwords}标签,这是最简单、最直接的方法,无需任何代码修改即可实现。

标签基本用法

在需要显示热门搜索的HTML模板文件中(通常是 head.htmfooter.htm),直接使用以下标签:

<div class="hot-search">
    <span>热门搜索:</span>
    {dede:hotwords num='10' sublen='8'}
    <a href="[field:link/]">[field:name/]</a>
    {/dede:hotwords}
</div>

标签参数详解

  • num='10':表示调用热门搜索关键词的数量,这里调用10个,你可以根据需要修改这个数字。
  • sublen='8':表示每个关键词显示的最大长度,如果关键词过长,会自动截断,一个关键词是“织梦cms建站教程”,设置sublen='8'后,会显示为“织梦cms建...”。
  • maxlength='20':与sublen类似,但更侧重于数据库查询时的截取,通常sublen就足够了。
  • sort='hot':排序方式。hot表示按搜索次数(热门度)排序,这是默认值,你也可以使用week(本周热门)或month(本月热门),但这需要在后台开启相应的统计功能。

标签输出字段

  • [field:link/]:关键词的搜索链接,点击后会跳转到网站的搜索结果页,并带上该关键词作为参数。/plus/search.php?keyword=织梦cms
  • [field:name/]:关键词的文本内容。
  • [field:count/]:该关键词被搜索的次数。

样式美化

上面的HTML代码会生成类似这样的结构: <a href="/plus/search.php?keyword=织梦">织梦</a><a href="/plus/search.php?keyword=cms">cms</a>...

你可以通过CSS来美化它,使其看起来更美观,在CSS文件中添加:

织梦cms 热门搜索怎么调用的
(图片来源网络,侵删)
.hot-search a {
    color: #666;
    text-decoration: none;
    margin-right: 10px;
    padding: 2px 5px;
    border: 1px solid #eee;
    border-radius: 3px;
}
.hot-search a:hover {
    color: #ff6600;
    border-color: #ff6600;
    background-color: #fff5f0;
}

使用SQL查询标签(更灵活)

如果默认的{dede:hotwords}标签无法满足你的需求(比如需要更复杂的排序、筛选或与其他数据关联),你可以使用{dede:sql}标签直接从数据库中查询。

基本SQL查询

热门搜索的数据通常存储在dede_search_keywords这张表中,我们可以通过SQL查询来获取按搜索次数排序的关键词列表。

<div class="hot-search">
    <span>热门搜索:</span>
    {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}
</div>

代码解释:

  • sql="SELECT keyword, count FROM dede_search_keywords ORDER BY count DESC LIMIT 10"
    • SELECT keyword, count:查询关键词和搜索次数两个字段。
    • FROM dede_search_keywords:从dede_search_keywords表中查询(注意:如果你的表前缀不是dede_,请修改为你的表前缀)。
    • ORDER BY count DESC:按count(搜索次数)字段降序排列,这样最热门的词就会排在前面。
    • LIMIT 10:限制只返回10条结果。
  • [field:keyword/]:通过{dede:sql}标签,查询结果中的字段名可以直接用[field:字段名/]来调用。

通过修改PHP文件实现(功能增强)

如果你想让热门搜索的数据更可控,或者希望它不依赖于用户的实时搜索记录(比如由管理员手动指定),你可以通过修改PHP文件来实现。

织梦cms 热门搜索怎么调用的
(图片来源网络,侵删)

创建自定义函数文件

  1. 打开织梦的include目录,找到 extend.func.php 文件,如果这个文件不存在,就新建一个。
  2. 在这个文件中添加一个自定义的函数,
/**
 * 获取热门搜索关键词
 * @param int $num 获取数量
 * @return string 返回HTML链接字符串
 */
function GetHotSearch($num = 10) {
    global $dsql;
    $keywords = array();
    $html = '';
    // 方法A: 从数据库获取(与SQL查询标签方法相同)
    $result = $dsql->GetOne("SELECT keyword FROM dede_search_keywords ORDER BY count DESC LIMIT 0, $num");
    while ($row = $dsql->GetArray($result)) {
        $keywords[] = "<a href='/plus/search.php?keyword=".urlencode($row['keyword'])."'>".$row['keyword']."</a>";
    }
    $html = implode(' ', $keywords);
    // 方法B: 手动指定关键词(更灵活)
    /*
    $hot_keywords = array('织梦CMS', '网站建设', 'PHP教程', '网页模板');
    foreach ($hot_keywords as $k) {
        $keywords[] = "<a href='/plus/search.php?keyword=".urlencode($k)."'>".$k."</a>";
    }
    $html = implode(' ', $keywords);
    */
    return $html;
}

在模板中调用函数

在模板文件中,使用织梦的{dede:global}标签来调用这个自定义函数:

<div class="hot-search">
    <span>热门搜索:</span>
    {dede:global name='GetHotSearch' function='GetHotSearch(@me)'/}
</div>

或者,如果你想直接调用不传参数:

<div class="hot-search">
    <span>热门搜索:</span>
    {dede:global name='GetHotSearch'/}
</div>

这种方法的优势:

  • 逻辑分离:将PHP逻辑放在函数文件中,模板文件更简洁。
  • 高度灵活:你可以轻松地在函数内部实现任何你想要的功能,比如从缓存读取、从后台配置读取等。

总结与建议

方法 优点 缺点 适用场景
系统标签 最简单,无需代码修改,官方支持 功能相对固定,自定义性差 绝大多数情况下的首选,快速实现基本功能。
SQL查询标签 灵活性高,可以写任意复杂的SQL 需要了解SQL和数据库表结构 需要特殊排序、筛选或与系统其他表关联时。
PHP函数 最灵活,功能最强大,逻辑与视图分离 需要修改PHP文件,有一定门槛 需要高度定制化,或希望不依赖用户搜索记录时。

对于绝大多数用户来说,强烈推荐使用方法一(系统自带的{dede:hotwords},因为它简单、高效且足够稳定,只有在它无法满足你的特定需求时,再考虑使用方法二或方法三。

-- 展开阅读全文 --
头像
织梦tags.php模板文件存放在哪个目录?
« 上一篇 2025-12-15
织梦PHP开发tags功能,如何实现高效标签管理?
下一篇 » 2025-12-15

相关文章

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