dede如何添加搜索功能?

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

第一步:启用网站搜索功能

在DedeCMS中,搜索功能默认是开启的,但最好还是检查一下后台设置。

dede添加搜索功能
(图片来源网络,侵删)
  1. 登录DedeCMS后台
  2. 在左侧菜单栏中,找到并点击 【系统】 -> 【系统基本参数】
  3. 在打开的页面中,切换到 【核心设置】 选项卡。
  4. 找到 “是否开启网站全文搜索” 这一项,确保它被设置为 “是”
  5. 点击 【保存】 按钮保存设置。

第二步:在首页添加搜索框

这是最核心的一步,你需要修改网站的首页模板文件。

  1. 找到首页模板文件

    • 登录DedeCMS后台。
    • 点击 【模板】 -> 【默认模板管理】
    • 在列表中找到 “index.htm”,这通常是你的首页模板,点击右侧的 【修改】
  2. 添加搜索框代码

    • index.htm 文件中,你希望显示搜索框的位置(通常是页头 header 或主导航栏下方),插入以下代码:
    <!-- 搜索框开始 -->
    <form name="formsearch" action="{dede:global.cfg_cmsurl/}/search.php">
      <div class="search-box">
        <input type="hidden" name="kwtype" value="0" />
        <input type="text" name="q" class="search-keyword" placeholder="请输入关键词..." />
        <button type="submit" class="search-submit">搜索</button>
      </div>
    </form>
    <!-- 搜索框结束 -->

    代码解释:

    dede添加搜索功能
    (图片来源网络,侵删)
    • <form ... action="{dede:global.cfg_cmsurl/}/search.php">:这是搜索表单。action 属性指定了处理搜索请求的页面,{dede:global.cfg_cmsurl/} 是DedeCMS的全局变量,会自动替换为你的网站根目录URL。
    • <input type="hidden" name="kwtype" value="0" />:这是一个隐藏字段,用于设置搜索类型。0 表示在所有内容中搜索。
    • <input type="text" name="q" ... />:这是用户输入关键词的文本框。name="q" 是固定的,DedeCMS的搜索系统会识别这个参数。
    • <button type="submit" ... >搜索</button>:提交按钮。
  3. 保存并更新首页

    • 修改完模板后,点击模板编辑器右上角的 【保存】 按钮。
    • 回到 【模板】 -> 【首页更新】,点击页面上的 【更新主页HTML】 按钮,让修改生效。

你的首页应该已经出现了一个可以使用的搜索框。


第三步:自定义搜索框样式(CSS)

默认的搜索框可能比较简陋,你可以通过添加CSS来美化它。

  1. 找到CSS文件

    dede添加搜索功能
    (图片来源网络,侵删)
    • 通常位于你的模板目录下的 style 文件夹里,文件名为 style.cssmain.css/templets/你的模板名称/style/style.css
  2. 添加CSS样式

    • 在CSS文件中添加以下样式代码(你可以根据自己网站的设计进行调整):
    /* 搜索框容器样式 */
    .search-box {
      display: flex; /* 使用flex布局让输入框和按钮在一行 */
      align-items: center;
      max-width: 500px;
      margin: 20px auto; /* 居中显示,并添加上下边距 */
      border: 1px solid #ddd;
      border-radius: 25px; /* 圆角 */
      overflow: hidden; /* 隐藏溢出的部分,实现圆角效果 */
    }
    /* 搜索关键词输入框样式 */
    .search-keyword {
      flex-grow: 1; /* 让输入框占据剩余所有空间 */
      height: 40px;
      border: none; /* 去掉边框 */
      outline: none; /* 去掉点击时的轮廓线 */
      padding: 0 15px;
      font-size: 14px;
      background-color: transparent; /* 背景透明 */
    }
    /* 搜索按钮样式 */
    .search-submit {
      height: 40px;
      border: none;
      background-color: #007bff; /* 按钮背景色 */
      color: white;
      padding: 0 20px;
      font-size: 14px;
      cursor: pointer;
      transition: background-color 0.3s; /* 鼠标悬停时的过渡效果 */
    }
    .search-submit:hover {
      background-color: #0056b3; /* 鼠标悬停时的背景色 */
    }
  3. 保存并刷新

    保存CSS文件,然后刷新你的网站首页,就能看到美化后的搜索框了。


第四步:高级定制与常见问题

修改搜索结果页模板

如果你不满意默认的搜索结果页面,可以修改它的模板。

  • 位置/templets/你的模板名称/search.htm
  • 如何修改:打开这个文件,你会看到 {dede:list} 标签,它用于循环输出搜索到的文章列表,你可以像修改列表页模板一样,自由调整搜索结果的显示样式、标题、时间等信息。

修改搜索框的提示文字

在第二步的HTML代码中,placeholder="请输入关键词..." 这部分就是提示文字,你可以直接修改这里的文字内容。

搜索不到内容怎么办?

这是一个非常常见的问题,通常有两个原因:

  • 没有生成全站HTML或更新了数据库但没有更新搜索索引。

    • 解决方法:登录DedeCMS后台,点击 【系统】 -> 【数据备份/还原】 -> 【数据库备份】,在右侧的 “附加SQL” 标签页中,输入以下SQL语句并点击“提交”:
      ALTER TABLE `dede_search` ADD FULLTEXT(`title` , `body`);

      (注意:如果你的数据表前缀不是 dede_,请修改成你的实际前缀,这个操作是为文章的标题和内容建立全文索引,能极大提高搜索准确率和效率。)

  • 新添加的文章没有被搜索到。

    • 解决方法:DedeCMS的搜索索引不是实时更新的,当你添加或修改文章后,需要手动更新搜索索引。
      • 登录后台,点击 【生成】 -> 【文档HTML更新】
      • 在页面底部找到 “搜索更新” 部分,点击 “开始执行”

如何在指定栏目内搜索?

如果你想实现只搜索某个特定栏目下的内容,可以修改搜索框的HTML,增加一个 typeid 参数。

<form name="formsearch" action="{dede:global.cfg_cmsurl/}/search.php">
  <input type="hidden" name="kwtype" value="0" />
  <input type="hidden" name="typeid" value="1" /> <!-- 这里的 1 是你要搜索的栏目ID -->
  <input type="text" name="q" placeholder="请输入关键词..." />
  <button type="submit">搜索</button>
</form>
  • 如何获取栏目ID? 在后台的【栏目管理】中,将鼠标悬停在一个栏目上,浏览器状态栏会显示 ...?cid=1,这个数字就是ID。

通过以上四个步骤,你就可以成功地在DedeCMS网站中添加并自定义搜索功能了。

流程回顾:

  1. 后台检查:确保搜索功能已开启。
  2. 修改模板:在首页模板 index.htm 中添加搜索框HTML代码。
  3. 美化样式:在CSS文件中添加样式,让搜索框更美观。
  4. 解决问题:遇到搜索不到内容时,通过执行SQL和更新搜索索引来解决。

希望这个详细的教程能帮到你!

-- 展开阅读全文 --
头像
织梦自定义联动调用如何实现?
« 上一篇 昨天
程序设计基础基于C语言如何入门?
下一篇 » 昨天

相关文章

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

目录[+]