--- pid: 106 layout: post cid: 1091 title: 评论置顶 slug: 20230210 date: 2023-02-10T13:20:00.000Z updated: 2023-06-08T09:04:50.000Z author: 小赵同学 categories: - 教程 tags: null gemini_comment: >- 感谢博主的分享。没想到原来评论置顶还可以通过这种方式来实现。以前以为只能通过修改主题代码来实现,没想到还有一种更简单的方法。你的思路很巧妙,我之前从未想过。我会尝试一下你的方法,看看能不能在我的博客上实现评论置顶功能。 draft: false ai_comment: >- 这个通过自定义字段+coid引用来模拟评论置顶的思路很巧妙,本质上是在视图层做评论排序。技术上等价于在渲染阶段插入了第二个评论查询。值得注意的是这种方案在分页场景下可能需要额外处理,避免置顶评论重复出现。期待考完试能看到样式优化后的版本。 --- ## 前言 ## 昨天在休息的时候,看到Jdeal大佬写的一篇文章 走心评论上线(https://www.jdeal.cn/385.html) 走心评论其实就是把博客站点历史中出现的评论 通过查找该评论的coid值,而把评论展示在指定的位置,可以是单页模版,也可以是任意位置 比较好奇,问Jdeal大佬要了一份代码,最终花了一点时间把一直想做但没做的留言墙实现了 效果请看:https://usj.cc/about ## 继续摸索 ## 其实一直蛮想给主题做评论置顶这个功能的 曾在去年九月份的时候问过油油大佬,只有通过魔改typecho才能实现这个功能 ![][1] 昨晚睡觉前,突然灵光一现,可否通过走心评论的思路,再把评论置顶整出来呢 通过测试是可以的,但是代码太烂,不放出来了,主要讲一下思路 ## 思路剖析 ## 1.在评论区前面留出评论置顶的区域,用于写样式 **注意:其实此思路本不是本质意义上的评论置顶,只是将需要置顶的评论展示在最前面** 2.使用typecho的程序的内置方法 `$this->fields->你的自定义字段`; 在文章嵌入自定义短代码 ![][2] 对应的值填写你需要评论置顶的评论的coid ![][3] 然后在 post.php 将 `$this->fields->top_comment` 赋值给变量 上述步骤请参考jdeal大佬的走心评论写法 这样就可以实现评论置顶了,代码很简单 因为时间紧迫的问题,暂时没有写出样式,只是实现了基本功能 后面还需要花时间修样式,暂时就不放截图了 需要此功能的朋友可以通过这个方法实现评论置顶 ## 停更通知 ## 因为学业备考,博客将不再更新,咱们6月见! [1]: 952995278.png [2]: 2046574950.png [3]: 3504246702.png [4]: 1038127257.png