Discourse 会为每个创建的类别分配一个 ID,因此您可以使用该 ID 来实现您的目标。
您需要在 主题组件 中添加一些自定义代码,并将其添加到您正在使用的主题中。
以下是实现您目标的带注释代码。
<script type="text/discourse-plugin" version="0.8">
// 您可以修改的选项
const targetCategoryId = 6; // 将其更改为您要 targeting 的类别 ID
const placeHolderForCategory = "CHANGE_THIS_TEXT_BUT_KEEP_THE_QUOTES";
// 无需修改此行下方的内容。如果您是管理员,请在此停止。
const discourseComputed = require("discourse-common/utils/decorators")
.default;
// 非远程组件
const currentLocale = I18n.currentLocale();
I18n.translations[
currentLocale
].js.composer.custom_category_placeholder = placeHolderForCategory;
// 为目标类别更改占位符,否则使用默认值。
api.modifyClass("model:composer", {
@discourseComputed("canEditTopicFeaturedLink")
titlePlaceholder() {
return this.category && this.category.id === targetCategoryId
? "composer.custom_category_placeholder"
: this._super();
},
});
</script>
将此代码放入您组件的 common > header 标签页中。
您可以通过访问特定类别的页面并检查 URL 来获取类别 ID。
例如,
此处 Meta 上的 Support 类别的 ID 是 6(URL 中的最后一位数字)
在上面的代码片段中,您目标类别的 ID(数字)应替换 targetCategoryId 中的 “6”。
另一种选择非常简单:将文本更改为您希望作为该类别标题占位符显示的内容。