出现 2 个 discourse 评论框。
平台:WordPress
主题:Astra
之前我们使用的是 extol 主题,然后迁移到了 astra。通过 astra 网站构建器添加了评论部分挂钩,并根据显示条件将其放置在帖子下方。
所有博客帖子都正常显示评论部分,只有 3 篇帖子(显示两次 discourse 评论部分)。
有人能帮帮我吗?
出现 2 个 discourse 评论框。
平台:WordPress
主题:Astra
之前我们使用的是 extol 主题,然后迁移到了 astra。通过 astra 网站构建器添加了评论部分挂钩,并根据显示条件将其放置在帖子下方。
所有博客帖子都正常显示评论部分,只有 3 篇帖子(显示两次 discourse 评论部分)。
有人能帮帮我吗?
你好,这看起来像是你的主题出现的问题,或者可能是你使用“Astra Site Builder”的方式有问题,但我们仍然会尽力提供帮助。
也许你可以详细说明一下这是什么样子的?你是否使用了任何代码?你能提供“Astra Site Builder”的文档链接吗?它是一个支持区块的主题吗?请尽量提供详细信息。
感谢 @angus 您的及时回复。
实际上,我在编辑代码时看不到任何代码,并且我正在使用主题默认的单篇帖子模板,该模板不应包含 discourse 评论代码。
奇怪的是,这仅发生在以下帖子中:Strange thing is this happening with only following posts: - Pastebin.com [请检查 pastebin,我已添加链接]
其他帖子仅显示我通过 astra 网站构建器添加的评论框。
是的,astra 是一个启用了块的主题。这是它的文档:Documentation Docs
您是否使用了 WP Discourse Comments Block?
是的,我在 Astra 网站构建器上使用了 WP Discourse 评论块。即使我禁用了 Astra 网站构建器钩子,这个额外的 Discourse 评论框仍然显示在帖子下方。
以前我们使用 extol 主题。我们在单个帖子页面本身添加了 Discourse 评论块。
然后我们迁移到了 Astra。
Astra 有一些限制,所以我们无法编辑默认的单个帖子模板。这就是为什么我通过 Astra 站点构建器钩子添加了 Discourse 评论框,它工作得很完美。
即使我禁用了 Astra 站点构建器钩子,这 3 个页面仍然显示 Discourse 评论框,我们没有在帖子中添加评论框块。而且真的找不到它是从哪里来的。
请在 WP Discourse > Comments 中禁用“启用 Discourse 评论”设置,并告诉我该设置会产生什么影响(请确保保存设置更改)。
如果我禁用此设置,两个评论框都会消失。
好的,您可以重新启用它。
问题在于,无论您使用哪种主题和网站构建器组合,您都在同一页面上同时拥有 PHP 文章模板和区块文章模板(这不正常)。这就是发生这种情况的原因。
如果您想在单个页面中加载两个模板,则需要从 PHP 文章模板中删除 comments_template 行。
如果它来自 php,我想知道为什么它只对特定的 3 个帖子可见。
我在 single.php 文件中找不到 comments_template。![]()
如果我在自定义设置中禁用评论,只有评论框会消失。Discourse 评论框仍然可见。
还是没弄明白。
当有人在 discourse 论坛帖子中发表评论时,相关的博文下方会出现一个新的评论部分。我找不到 comments_template。
您能推荐一些关于此的文章或视频教程吗?
我通过额外的 CSS 隐藏了一个评论部分。
这是一个临时解决方案。如果有任何有效的方法,请告诉我,我会应用。
您正在使用的 PHP 模板中有一个 comments_template 函数调用,导致了此问题。它看起来会像这样。
<?php comments_template(); ?>
具体位置取决于您使用的 PHP 模板。找到该函数即可解决问题。很抱歉,我们或文章能提供的帮助不多了。
我唯一能想到的其他建议是联系支持“Astra”的人员。这里根本的问题是您正在使用的 PHP 模板和区块的组合。也许他们能对此有所启发。
首先,我想对@angus表示衷心的感谢,感谢您一直支持我并提供如此周到的指导。您的支持对我意义重大,我非常感谢您为帮助我解决此问题所付出的时间和精力。让我带您了解我所探索和尝试的一切,希望能帮助到其他遇到类似问题的人。
背景和初始设置:
最初,我们使用的是Extol主题,我们将Discourse评论块直接添加在单个帖子页面本身。这工作得非常好。当我们切换到Astra主题时,情况变得更加复杂。由于Astra有一些限制(例如无法轻松编辑默认的单个帖子模板),我通过Astra Site Builder钩子添加了Discourse评论框,并根据显示条件将其放置在帖子下方。
这对于大多数帖子来说都很顺利,但对于三个特定的帖子,Discourse评论部分出现了两次。我无法弄清楚为什么只对这些帖子发生这种情况,而其他帖子则显示正常。这种异常让我认为可能是旧的Extol设置的残留,但我无法确定任何确切的地方。
探索问题:
comments_template();的任何实例。不幸的是,我找不到任何明确调用此函数的代码。这让我感到困惑。如果这是一个PHP模板问题,为什么我找不到它?在WP主题自定义器附加CSS中添加CSS
#comments {
display: none !important;
}
在Astra钩子中添加CSS:
#comments {
display: block !important;
}
虽然这有效,但我同意这并非永久解决方案。我更愿意解决根本原因。
想法和理论:
我尚未尝试的操作:
后续步骤:
目前,我认为我将尝试联系Astra支持,并可能禁用插件进行更多测试。我也许会尝试另一种方法,使用子主题,看看是否能更精确地手动处理Discourse评论部分。
Angus,再次感谢您的帮助和耐心。您的见解非常有价值,尽管我还没有完全解决它,但我感觉离理解正在发生的事情更近了。如果其他人有任何想法、见解或类似问题的经验,我很想听听!
如果我发现任何新东西,我会继续深入研究并在那里更新。祝好!
您是否启用了“显示现有 WP 评论”设置?
我尝试启用/禁用设置,但对额外的 Discourse 评论框没有任何影响。
谢谢 @Arkshine
抱歉,我之前没有看对问题!
我以为你只说的是这个:
我认为你的问题是符合预期的。
Astra 主题不支持全站编辑功能,也不支持区块。
换句话说,Astra 不是一个区块主题,要自定义页面,你需要使用第三方页面构建器(例如,在你的情况下的 Elementor)。
如果你没有使用 Discourse 区块来替换原始的评论区块,你肯定会看到重复。Angus 在他的视频中展示了如果你有一个区块主题需要做什么:https://meta.discourse.org/t/wp-discourse-comments-block/249790。
当你使用钩子添加 Discourse 区块时,你并不是在替换评论区域;你是在特定的位置放置自定义代码。
解决方案是什么?
如果你喜欢 Astra 钩子的外观/位置,有一种方法可以移除原生的 WP 评论区域。你可以添加这段 PHP 代码。如果你需要关于如何操作的帮助,请参阅 https://wpastra.com/docs/add-custom-php-code/。
add_action(
'init',
function() {
if ( class_exists( 'Astra_Loop' ) ) {
remove_action( 'astra_template_parts_content', array( Astra_Loop::get_instance(), 'template_parts_comments' ), 15 );
}
},
11
);
希望这有帮助!
非常感谢您,@Arkshine! ![]()
终于,原生的评论区不再可见了——这真是一段漫长的旅程!
也衷心感谢 @angus。您在此过程中展现出的耐心、指导和深刻见解确实无比宝贵。我真诚地感谢您为帮助我解决这个问题所付出的时间和精力。
从测试不同的设置到调试块和 PHP 模板的混合,我探索了所有方法——从禁用 Astra 钩子到调整 CSS,检查评论模板,甚至追踪为什么只有某些帖子受到影响。这真是一场反复试验的过山车,但每一步都帮助我更好地理解了系统。
没有您的专业知识和乐于助人的精神,这一切都不可能实现。您的帮助不仅解决了问题,还让我学到了很多关于 WordPress、Discourse 和主题集成方面的知识。我感激不尽。
对于任何面临类似问题的人:继续测试,继续学习,永远不要犹豫寻求帮助。这个社区太棒了! ![]()
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.