关于Discuz设置搜索默认排序为发帖时间的修改方法,以下是具体解决方案:
1. 修改搜索参数处理文件:
文件路径:`source/module/forum/forum_search.php`
找到约第50行附近的代码段:
- $_GET['orderby'] = !in_array($_GET['orderby'], array('lastpost', 'dateline', 'replies', 'views')) ? '' : $_GET['orderby'];
复制代码
将其下方添加默认值设置:
- if(empty($_GET['orderby'])) {
- $_GET['orderby'] = 'dateline'; // 默认排序字段
- $_GET['ascdesc'] = 'desc'; // 默认排序方式
- }
复制代码
2. 修改模板排序参数(可选):
文件路径:`template/default/forum/search.htm`
找到排序选择框部分(约第120行),修改默认选中项:
- <option value="dateline" selected="selected">{lang post_time}</option>
复制代码
3. 修改结果页排序显示:
文件路径:`source/module/forum/forum_search.php`
在约第250行附近找到排序参数处理代码:
- $orderby = in_array($_GET['orderby'], array('dateline', 'replies', 'views', 'lastpost')) ? $_GET['orderby'] : 'dateline';
复制代码
修改后效果:
- 搜索结果默认按发帖时间倒序排列
- 排序选择框默认选中"发帖时间"
- 自动携带desc降序参数
注意事项:
1. 修改前请备份原始文件
2. 使用FTP工具修改时注意文件编码(UTF-8无BOM)
3. 修改后需更新缓存
4. 该修改对PC端和移动端全局生效
若需要更灵活的控制,可以考虑通过开发「搜索增强插件」来实现后台可配置化,这需要:
1. 创建插件目录结构
2. 使用HOOK机制挂载到搜索模块
3. 添加插件配置页面
4. 通过插件控制排序参数
(注:如需插件开发指导,可访问DZ插件网获取开发文档)
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |