0

0

DEDECMS搜索页模板怎么改?搜索结果显示如何调整?

小老鼠

小老鼠

发布时间:2025-08-19 16:20:02

|

618人浏览过

|

来源于php中文网

原创

dedecms的搜索页模板文件默认位于templets/default/search.htm,若更改过模板风格则路径相应变化;修改搜索结果显示需编辑该文件中的{dede:list}循环标签,调整[field:title /]等字段并配合html与css控制样式;分页由{dede:pagelist /}标签控制,可修改其属性调整显示元素和数量;排序需在plus/search.php中修改sql语句的order by子句实现;搜索无结果时可通过添加{dede:list noinfo='yes'}标签块显示自定义提示内容,提升用户体验。

DEDECMS搜索页模板怎么改?搜索结果显示如何调整?

DEDECMS的搜索页模板调整,说白了,核心就是找到对的那个文件,然后理解它里面的标签逻辑。这事儿不复杂,但如果你是初次接触,可能会觉得有点摸不着头脑,因为它不像有些框架那样直观。基本上,就是改模板文件,调整输出结构和样式。

解决方案

要修改DEDECMS的搜索页模板和调整搜索结果显示,你需要关注两个主要部分:一个是模板文件本身,通常是

search.htm
;另一个是数据处理逻辑,它在
plus/search.php
里。虽然我们主要操作的是
.htm
文件,但理解
search.php
如何组织数据对高级定制很有帮助。

首先,定位你的模板文件。默认情况下,它位于

templets/default/search.htm
。如果你使用了自定义模板,那就在你当前主题的目录下找。打开这个
search.htm
文件,你会看到DEDECMS特有的标签。这些标签负责循环输出搜索结果,比如文章标题、链接、简介等等。

修改的步骤通常是:

  1. 备份: 动任何文件前,先备份
    search.htm
    plus/search.php
    ,这是黄金法则。
  2. 定位循环标签:
    search.htm
    里找到负责遍历搜索结果的标签,通常是
    {dede:list}
    或类似的自定义标签。这个标签内部定义了每一条搜索结果的显示方式。
  3. 调整显示字段: 在循环标签内部,你可以看到
    [field:title /]
    [field:arcurl /]
    [field:description /]
    等,它们分别代表标题、链接、描述。你想显示什么,就把对应的
    [field:xxx /]
    加进去;不想显示的,就删掉。
  4. 修改HTML结构和CSS: 在这些字段外面包裹你想要的HTML标签(比如
    div
    h2
    p
    ),然后通过外部CSS文件或内联样式来控制它们的布局、字体大小、颜色等。
  5. 更新缓存: 修改完文件后,记得去DEDECMS后台清除缓存,有时还需要重新生成HTML。

DEDECMS搜索页模板文件具体在哪里?

DEDECMS的搜索页模板文件,通常默认路径是

templets/default/search.htm
。但这个“默认”二字,其实有点学问。如果你在后台“系统” -> “系统基本参数” -> “站点设置”里更改过“默认模板风格”,那么你的
search.htm
文件就应该在
templets/你的新模板风格名称/search.htm
这个路径下。

这里有个小细节,很多人会混淆:

plus/search.php
search.htm
search.php
是处理搜索请求、从数据库里捞取数据并把数据传递给模板的“幕后英雄”,它决定了搜索的逻辑和数据源。而
search.htm
才是我们肉眼看到、负责把这些数据排版显示出来的“舞台”。所以,改界面显示,直接找
search.htm
准没错。如果你想改搜索逻辑,比如搜索范围、排序方式,那才需要动
search.php
,但那通常是更高级别的定制了,风险也更大。

如何修改DEDECMS搜索结果的显示字段和样式?

修改DEDECMS搜索结果的显示字段和样式,核心操作都在

search.htm
这个模板文件里。当你打开它,会看到类似这样的结构:

{dede:list orderby='pubdate' typeid='' row='10'}
    <dl class="search-item">
        <dt><a href="[field:arcurl /]">[field:title /]</a></dt>
        <dd class="description">[field:description function='cn_substr(@me,120)' /]</dd>
        <dd class="meta">发布时间:[field:pubdate function='MyDate("Y-m-d H:i",@me)' /] 浏览:[field:click /]</dd>
    </dl>
{/dede:list}
{dede:pagelist listitem="info,index,end,pre,next,pageno,option" listsize="5"/}

这里面,

{dede:list}
{/dede:list}
就是循环输出每条搜索结果的区域。

  • 显示字段调整:

    • [field:title /]
      :文章标题。
    • [field:arcurl /]
      :文章链接。
    • [field:description /]
      :文章简介。你可以通过
      function='cn_substr(@me,120)'
      来截取字数,比如这里截取120个字符。
    • [field:pubdate /]
      :发布时间。同样可以用
      function
      来格式化时间显示。
    • [field:click /]
      :文章点击量。
    • 如果你想显示其他字段,比如自定义字段,只要确保该字段在内容模型里定义了,并且
      search.php
      能正确查询到,就可以用
      [field:你的自定义字段名 /]
      来调用。比如,如果你有个自定义字段叫
      author
      ,那就写
      [field:author /]
  • 样式调整:

    • HTML结构:
      [field:xxx /]
      外面包裹你想要的HTML标签,比如用
      <h2>
      包裹标题,用
      <p>
      包裹描述,用
      <span>
      包裹发布时间等。
    • CSS: 给这些HTML标签添加
      class
      id
      ,然后在你的CSS文件(通常是
      templets/default/style/dedecms.css
      或你自定义的CSS文件)中定义样式。比如,上面的例子中,我给每个搜索结果项加了
      search-item
      dl
      ,给描述加了
      description
      dd
      ,这样你就可以在CSS里写:
      .search-item {
          margin-bottom: 20px;
          padding-bottom: 10px;
          border-bottom: 1px dashed #eee;
      }
      .search-item dt a {
          font-size: 18px;
          color: #337ab7;
          text-decoration: none;
      }
      .search-item .description {
          color: #666;
          line-height: 1.6;
          margin-top: 5px;
      }
      .search-item .meta {
          font-size: 12px;
          color: #999;
          margin-top: 8px;
      }

      通过这种方式,你可以完全掌控搜索结果的视觉呈现。

      人声去除
      人声去除

      用强大的AI算法将声音从音乐中分离出来

      下载

DEDECMS搜索结果分页和排序如何调整?

DEDECMS搜索结果的分页和排序调整,涉及到不同的层面。分页相对简单,而排序则需要更深入的了解。

  • 分页调整: 分页通常由

    search.htm
    模板文件中的
    {dede:pagelist /}
    标签控制。比如:

    {dede:pagelist listitem="info,index,end,pre,next,pageno,option" listsize="5"/}

    这个标签负责生成分页链接。你可以通过修改

    listitem
    属性来控制分页显示哪些元素(如信息、首页、末页、上一页、下一页、页码、跳转选项),
    listsize
    则控制显示多少个页码链接。样式方面,分页的HTML结构也会生成相应的
    class
    ,你可以在CSS里进行美化。比如,默认的分页样式可能在
    dedecms.css
    里有定义,你可以覆盖它。

  • 排序调整: DEDECMS前台搜索页的排序,如果你想让用户选择不同的排序方式(比如按发布时间、按点击量),这在

    search.htm
    模板里是无法直接实现的。因为搜索结果的排序逻辑,是在
    plus/search.php
    这个PHP文件里处理的。它内部会构建SQL查询语句,其中包含
    ORDER BY
    子句。

    如果你需要更改默认的排序方式,比如让搜索结果默认按点击量降序排列,你就得去修改

    plus/search.php
    文件。找到类似构建SQL查询的部分,然后修改
    ORDER BY
    子句。例如,将
    ORDER BY arc.id DESC
    改为
    ORDER BY arc.click DESC

    注意: 直接修改

    plus/search.php
    需要谨慎,因为这涉及到核心逻辑。一旦改错,可能导致搜索功能异常。修改前务必备份,并且要对PHP和SQL有基本的理解。通常情况下,如果只是简单的模板和样式调整,不需要动
    search.php
    。但如果你需要复杂的排序或筛选功能,那就没办法了,得深入到代码层面。

DEDECMS搜索结果为空时如何提示用户?

当DEDECMS搜索结果为空时,给用户一个友好的提示是非常重要的。这可以提升用户体验,避免用户感到困惑。实现这个功能,主要还是在

search.htm
模板文件里通过DEDECMS的条件判断标签来完成。

DEDECMS提供了一个

[field:nodata runphp='yes']
的标签,当没有数据时,它内部的代码就会执行。但更常用的方式是结合
{dede:list}
标签的特性。

你可以这样处理:

{dede:list orderby='pubdate' typeid='' row='10'}
    <!-- 这里是正常显示搜索结果的HTML结构 -->
    <dl class="search-item">
        <dt><a href="[field:arcurl /]">[field:title /]</a></dt>
        <dd class="description">[field:description function='cn_substr(@me,120)' /]</dd>
        <dd class="meta">发布时间:[field:pubdate function='MyDate("Y-m-d H:i",@me)' /] 浏览:[field:click /]</dd>
    </dl>
{/dede:list}

{dede:list noinfo='yes'}
    <div class="no-results-message">
        <p>抱歉,没有找到与“<span class="keyword">{dede:global.keyword /}</span>”相关的文章。</p>
        <p>您可以尝试:</p>
        <ul>
            <li>检查关键词是否有错别字。</li>
            <li>使用更宽泛的搜索词。</li>
            <li>减少搜索词的数量。</li>
            <li>浏览我们的<a href="/">首页</a>或<a href="/a/">文章归档</a>。</li>
        </ul>
    </div>
{/dede:list}

{dede:pagelist listitem="info,index,end,pre,next,pageno,option" listsize="5"/}

这里使用了两个

{dede:list}
标签。第一个是正常的搜索结果循环。第二个
{dede:list noinfo='yes'}
是一个非常巧妙的用法,它表示“当没有信息(即没有搜索结果)时,显示其内部的内容”。

no-results-message
这个
div
里,你可以放入任何你想要提示用户的内容,比如:

  • 提示语: “抱歉,没有找到相关内容。”
  • 用户输入的关键词: 可以用
    {dede:global.keyword /}
    来显示用户刚才搜索的词,让提示更个性化。
  • 建议: 给出一些建议,比如检查错别字、尝试其他关键词、或者引导用户去其他页面(如首页、分类页)。

这样,当搜索结果为空时,用户就能看到一个清晰、友好的提示,而不是一片空白或错误信息,这无疑会大大提升他们的使用体验。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

1090

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

339

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

380

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

1988

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

379

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

1519

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

585

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

438

2024.04.29

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

2

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.5万人学习

CSS教程
CSS教程

共754课时 | 38.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号