·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

搜索怎么设置默认是发布时间进行排序呢?

169 2
发表于 2022-10-10 12:45:18 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
搜索怎么设置默认是发布时间进行排序呢? 搜索,怎么,设置,默认,发布
像图片这样,想搜索默认就是以发布时间降序排序,但默认却不是这样,搜索出来的帖子发布的时间排序都是乱的
我知道答案 回答被采纳将会获得5 金币 + 1 金币 已有0人回答
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-20 19:17:27 | 查看全部
要实现Discuz论坛搜索默认按发布时间降序排序,可通过以下三种方式实现:

1. 模板层修改(推荐)
找到模板文件:
template/您的风格/search/forum.htm
在表单内(约第5行)增加:
  1. <input type="hidden" name="orderby" value="dateline" />
  2. <input type="hidden" name="order" value="desc" />
复制代码


2. 程序层修改
打开 source/module/search/search_forum.php
找到:
  1. $orderby = in_array($_GET['orderby'], array('dateline', 'replies', 'views')) ? $_GET['orderby'] : '';
复制代码

修改为:
  1. $orderby = isset($_GET['orderby']) && in_array($_GET['orderby'], array('dateline', 'replies', 'views')) ? $_GET['orderby'] : 'dateline';
复制代码


3. URL参数重写
在搜索按钮的链接中加入参数:
  1. <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智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-22 01:31:43 | 查看全部
要在Discuz论坛中设置搜索默认以发布时间降序排序,你可以通过修改模板文件或插件来实现。以下是具体的步骤:

### 方法一:通过修改模板文件
1. **找到搜索模板文件**:
   搜索功能的相关模板文件通常位于 `template/default/forum/` 目录下,具体文件名为 `forum_search.htm`。

2. **修改搜索表单**:
   在 `forum_search.htm` 文件中,找到搜索表单的部分。通常搜索表单的代码类似于:
  
  1. <form method="get" action="forum.php" id="searchform">
  2.        <input type="hidden" name="mod" value="search">
  3.        <input type="hidden" name="searchid" value="{$searchid}">
  4.        <input type="hidden" name="orderby" value="lastpost">
  5.        <input type="hidden" name="ascdesc" value="desc">
  6.    </form>
复制代码

   你需要将 `orderby` 的值从 `lastpost` 改为 `dateline`,并将 `ascdesc` 的值设置为 `desc`,以确保搜索结果按发布时间降序排列。

   修改后的代码:
  
  1. <form method="get" action="forum.php" id="searchform">
  2.        <input type="hidden" name="mod" value="search">
  3.        <input type="hidden" name="searchid" value="{$searchid}">
  4.        <input type="hidden" name="orderby" value="dateline">
  5.        <input type="hidden" name="ascdesc" value="desc">
  6.    </form>
复制代码


3. **保存并上传**:
   保存修改后的 `forum_search.htm` 文件,并将其上传到服务器上替换原来的文件。

### 方法二:通过插件实现
如果你不想直接修改模板文件,可以通过编写一个简单的插件来实现这个功能。

1. **创建插件**:
   在 `source/plugin/` 目录下创建一个新的插件目录,例如 `search_orderby_dateline`。

2. **编写插件代码**:
   在插件目录下创建一个 `plugin.php` 文件,并添加以下代码:
  
  1. <?php
  2.    if (!defined('IN_DISCUZ')) {
  3.        exit('Access Denied');
  4.    }

  5.    class plugin_search_orderby_dateline {
  6.        function global_header() {
  7.            global $_G;
  8.            if ($_G['mod'] == 'search' && !isset($_GET['orderby'])) {
  9.                $_GET['orderby'] = 'dateline';
  10.                $_GET['ascdesc'] = 'desc';
  11.            }
  12.        }
  13.    }
  14.    ?>
复制代码


3. **安装插件**:
   将插件目录上传到 `source/plugin/` 目录下,然后在Discuz后台的插件管理中安装并启用该插件。

### 方法三:通过修改搜索链接
如果你只是想临时修改某个搜索链接的排序方式,可以直接在搜索链接中添加 `orderby=dateline&ascdesc=desc` 参数。例如:
  1. forum.php?mod=search&orderby=dateline&ascdesc=desc
复制代码


### 总结
通过以上方法,你可以轻松地将Discuz论坛的搜索功能默认设置为按发布时间降序排序。如果你对代码不熟悉,建议使用插件方式来实现,这样可以避免直接修改模板文件带来的风险。

如果你有更多问题,欢迎随时访问DZ插件网(https://www.dz-x.net/)获取更多帮助和资源。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.222.132.113,GMT+8, 2025-4-10 23:46 , Processed in 0.298583 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表