[技术文章] discuz论坛相关帖子按最新发布排序

[复制链接]
作者
n2n1   发布于2021-4-13 18:27:43 来自河北
discuz文章设置标签后,相关的帖子现在是按照时间先后来排序的,显示时间是最早发布的,结果最新的相关帖子无法展现出来,那标签的聚合作用还有啥作用啊,聚合的都是相同的老帖子.
现在只需要修改2个文件就可以实现最新发表的排在前面,在文章内容页和forumthread.php,修改以下代码.
fetch_all_by_tid 改成 fetch_all_by_relatedateline
大概在189行添加下面代码:
  1. public function fetch_all_by_relatedateline($tids, $start = 0, $limit = 0, $tableid = 0) {
  2. $data = array();170
  3. if(($data = $this->fetch_cache($tids)) === false || count($tids) != count($data)) {
  4. if(is_array($data) && !empty($data)) {
  5. $tids = array_diff($tids, array_keys($data));
  6. }
  7. if($data === false) $data = array();
  8. if(!empty($tids)) {
  9. $parameter = array($this->get_table_name($tableid), $tids);
  10. $query = DB::query("SELECT * FROM %t WHERE tid IN(%n) order by dateline desc ".DB::limit($start, $limit), $parameter);
  11. while($value = DB::fetch($query)) {
  12. $data[$value['tid']] = $value;
  13. $this->store_cache($value['tid'], $value, $this->_cache_ttl);
  14. }
  15. }
  16. }
  17. return $data;
  18. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 创建账号

本版积分规则

Archiver|小黑屋|( 冀ICP备2021005463号 )

GMT+8, 2024-11-21 19:07 , Processed in 0.096728 second(s), 26 queries , Gzip On.

N2N1 It社区 n2n1.cn

Copyright © 2001-2021,MeiCheng.

快速回复 返回顶部 返回列表