要实现Discuz论坛搜索默认按发布时间降序排序,可通过以下三种方式实现:
1. 模板层修改(推荐)
找到模板文件:
template/您的风格/search/forum.htm
在表单内(约第5行)增加:
- <input type="hidden" name="orderby" value="dateline" />
- <input type="hidden" name="order" value="desc" />
复制代码
2. 程序层修改
打开 source/module/search/search_forum.php
找到:
- $orderby = in_array($_GET['orderby'], array('dateline', 'replies', 'views')) ? $_GET['orderby'] : '';
复制代码
修改为:
- $orderby = isset($_GET['orderby']) && in_array($_GET['orderby'], array('dateline', 'replies', 'views')) ? $_GET['orderby'] : 'dateline';
复制代码
3. URL参数重写
在搜索按钮的链接中加入参数:
- <a href="search.php?mod=forum&orderby=dateline&order=desc">高级搜索</a>
复制代码
注意事项:
1. 修改前请备份原始文件
2. 使用DIY模式修改模板可避免升级覆盖
3. 如需同时影响手机版,需同步修改mobile模板文件
4. 修改后更新缓存(后台 -> 工具 -> 更新缓存)
这三种方法可单独使用也可组合使用,建议优先采用模板层修改方案。修改后搜索结果的URL中将自动包含search.php?mod=forum&orderby=dateline&order=desc参数,确保排序逻辑生效。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |