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

(图片来源网络,侵删)
- 登录DedeCMS后台。
- 在左侧菜单栏中,找到并点击 【系统】 -> 【系统基本参数】。
- 在打开的页面中,切换到 【核心设置】 选项卡。
- 找到 “是否开启网站全文搜索” 这一项,确保它被设置为 “是”。
- 点击 【保存】 按钮保存设置。
第二步:在首页添加搜索框
这是最核心的一步,你需要修改网站的首页模板文件。
-
找到首页模板文件
- 登录DedeCMS后台。
- 点击 【模板】 -> 【默认模板管理】。
- 在列表中找到 “index.htm”,这通常是你的首页模板,点击右侧的 【修改】。
-
添加搜索框代码
- 在
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> <!-- 搜索框结束 -->代码解释:
(图片来源网络,侵删)<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>:提交按钮。
- 在
-
保存并更新首页
- 修改完模板后,点击模板编辑器右上角的 【保存】 按钮。
- 回到 【模板】 -> 【首页更新】,点击页面上的 【更新主页HTML】 按钮,让修改生效。
你的首页应该已经出现了一个可以使用的搜索框。
第三步:自定义搜索框样式(CSS)
默认的搜索框可能比较简陋,你可以通过添加CSS来美化它。
-
找到CSS文件
(图片来源网络,侵删)- 通常位于你的模板目录下的
style文件夹里,文件名为style.css或main.css。/templets/你的模板名称/style/style.css。
- 通常位于你的模板目录下的
-
添加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; /* 鼠标悬停时的背景色 */ } -
保存并刷新
保存CSS文件,然后刷新你的网站首页,就能看到美化后的搜索框了。
第四步:高级定制与常见问题
修改搜索结果页模板
如果你不满意默认的搜索结果页面,可以修改它的模板。
- 位置:
/templets/你的模板名称/search.htm - 如何修改:打开这个文件,你会看到
{dede:list}标签,它用于循环输出搜索到的文章列表,你可以像修改列表页模板一样,自由调整搜索结果的显示样式、标题、时间等信息。
修改搜索框的提示文字
在第二步的HTML代码中,placeholder="请输入关键词..." 这部分就是提示文字,你可以直接修改这里的文字内容。
搜索不到内容怎么办?
这是一个非常常见的问题,通常有两个原因:
-
没有生成全站HTML或更新了数据库但没有更新搜索索引。
- 解决方法:登录DedeCMS后台,点击 【系统】 -> 【数据备份/还原】 -> 【数据库备份】,在右侧的 “附加SQL” 标签页中,输入以下SQL语句并点击“提交”:
ALTER TABLE `dede_search` ADD FULLTEXT(`title` , `body`);
(注意:如果你的数据表前缀不是
dede_,请修改成你的实际前缀,这个操作是为文章的标题和内容建立全文索引,能极大提高搜索准确率和效率。)
- 解决方法:登录DedeCMS后台,点击 【系统】 -> 【数据备份/还原】 -> 【数据库备份】,在右侧的 “附加SQL” 标签页中,输入以下SQL语句并点击“提交”:
-
新添加的文章没有被搜索到。
- 解决方法:DedeCMS的搜索索引不是实时更新的,当你添加或修改文章后,需要手动更新搜索索引。
- 登录后台,点击 【生成】 -> 【文档HTML更新】。
- 在页面底部找到 “搜索更新” 部分,点击 “开始执行”。
- 解决方法:DedeCMS的搜索索引不是实时更新的,当你添加或修改文章后,需要手动更新搜索索引。
如何在指定栏目内搜索?
如果你想实现只搜索某个特定栏目下的内容,可以修改搜索框的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网站中添加并自定义搜索功能了。
流程回顾:
- 后台检查:确保搜索功能已开启。
- 修改模板:在首页模板
index.htm中添加搜索框HTML代码。 - 美化样式:在CSS文件中添加样式,让搜索框更美观。
- 解决问题:遇到搜索不到内容时,通过执行SQL和更新搜索索引来解决。
希望这个详细的教程能帮到你!
