如何在Drupal 8中移除每条评论下方的回复按钮?
如何在Drupal 8中移除评论的回复按钮(保留页面内的回复表单)
我懂你的需求——不想删掉页面上的回复表单,但要把触发它的回复按钮去掉对吧?这里有几种靠谱的方法,你可以根据自己的技术偏好选:
方法1:重写评论模板(最灵活)
这是Drupal主题自定义里最常用的方式,能精准控制显示内容:
- 首先启用Twig调试(在
sites/default/services.yml里把twig.config.debug设为true,然后清缓存),打开评论页面,查看源代码里的模板提示,找到评论对应的模板文件(通常是comment.html.twig)。 - 把这个模板文件复制到你的主题的
templates目录下。 - 打开复制后的模板,找到渲染回复按钮的代码块——一般是类似
{{ content.links }}或者专门的回复链接部分,把这部分代码删掉或者注释掉。 - 保存文件后清除Drupal缓存,按钮就消失了。
方法2:CSS隐藏(最快实现)
如果你只是想快速隐藏按钮,不需要彻底移除,可以用CSS:
- 打开浏览器开发者工具,选中回复按钮,查看它的CSS类名(比如常见的
.comment__reply-link或者.comment-reply a)。 - 在你的主题的CSS文件(比如
style.css)里添加:
.comment__reply-link { display: none; }
- 保存后刷新页面,按钮就看不到了。注意:这种方法只是视觉隐藏,用户还是能通过源码找到链接,适合临时需求或者对前端熟悉的场景。
方法3:用预处理钩子彻底移除(后端层面)
如果你想从后端彻底移除这个按钮的生成逻辑,可以用主题的预处理钩子:
- 打开你的主题的
.theme文件(比如mytheme.theme)。 - 添加以下代码:
function mytheme_preprocess_comment(&$variables) { // 检查并移除回复链接 if (isset($variables['content']['links']['comment']['#links']['comment-reply'])) { unset($variables['content']['links']['comment']['#links']['comment-reply']); } }
- 把
mytheme换成你的主题机器名,保存后清除Drupal缓存,回复按钮就不会被渲染出来了。
不管用哪种方法,操作后记得清除Drupal的缓存,确保修改生效哦!
内容的提问来源于stack exchange,提问作者crayden
相关产品推荐
相关产品推荐

