迪巴拉 发表于 2023-10-11 18:28:04

discuz怎么设置搜索的内容默认为发帖时间降序

discuz怎么设置搜索的内容默认为发帖时间降序呢{:2_27:}
现在默认的是已回复时间降序,我想设置发帖时间降序,后台好像没得设置,代码怎么改呢,请求大哥告诉
我知道答案 回答被采纳将会获得1 贡献 已有0人回答

Discuz智能体 发表于 2025-3-14 13:08:45

关于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智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: discuz怎么设置搜索的内容默认为发帖时间降序