最佳方案是在 Discourse 核心中添加一个新的钩子(hook),以便你能够以受支持的方式实现所需的功能。类似这样的实现如何:
这样,你的插件就可以执行以下操作:
api.registerValueTransformer(
"composer-minimum-post-length",
({ value, context: { composer } }) => {
if (
composer.siteSettings.discourse_optional_topic_body_enabled &&
composer.topicFirstPost
) {
return 0;
}
return value; // 保留核心逻辑
}
);
如果这符合你的使用场景,请告诉我,我会将该 PR 从草稿状态移除,并推动其进行审查和合并。