Es wird einfacher sein, eine benutzerdefinierte Komponente zu erstellen, die dies an die richtigen Beiträge anhängt, anstatt eine Vorlage auszufüllen.
Wenn Sie den Code Ihres Themes unter admin > themes & components bearbeiten… und dies zum JS-Tab hinzufügen, sollten Sie mit einigen Anpassungen das gewünschte Ergebnis erzielen:
import { apiInitializer } from "discourse/lib/api";
import Component from "@glimmer/component";
class TopicIdentifier extends Component {
get topicId() {
return this.args.post?.topic?.id;
}
get shouldShow() {
const firstPost = this.args.post?.post_number === 1; // erster Beitrag im Thema
const desiredCategories = [45, 3]; // eine durch Kommas getrennte Liste von Kategorie-IDs, in denen dies angezeigt werden soll
const isInCategory = desiredCategories.includes(
this.args.post?.topic.category.id
);
return firstPost && isInCategory;
}
<template>
{{#if this.shouldShow}}
<!-- Sie können den Inhalt unten bearbeiten, {{this.topicId}} ist, wo die Thema-ID eingefügt wird -->
Diese Thema-ID ist
{{this.topicId}}
<!-- Sie können den Inhalt oben bearbeiten -->
{{/if}}
</template>
}
export default apiInitializer((api) => {
api.decorateCookedElement((element, helper) => {
const wrapper = document.createElement("div");
wrapper.className = "custom-topic-id"
helper?.renderGlimmer(
wrapper,
<template><TopicIdentifier @post={{helper.model}} /></template>
);
element.appendChild(wrapper);
});
});
Sie können die Kategorie-ID aus ihrer URL finden, um desiredCategories zu konfigurieren. Zum Beispiel hat die Support-Kategorie hier auf Meta die ID 6.
Sie können CSS hinzufügen, um dies nach Belieben zu gestalten, mit dem CSS-Tab… zum Beispiel
.custom-topic-id {
display: inline-block;
background: yellow;
}
