¿ID de tema como variable?

Será más fácil crear un componente personalizado que agregue esto a las publicaciones correctas en lugar de llenar una plantilla.

Si editas el código de tu tema en admin > temas y componentes… y agregas esto a la pestaña de JS, debería darte lo que buscas con algunos ajustes:

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; // primera publicación en el tema
    const desiredCategories = [45, 3]; // una lista separada por comas de los IDs de categoría en los que deseas que aparezca
    const isInCategory = desiredCategories.includes(
      this.args.post?.topic.category.id
    );

    return firstPost && isInCategory;
  }

  <template>
    {{#if this.shouldShow}}
      <!-- puedes editar el contenido a continuación, {{this.topicId}} es donde se llenará el ID del tema -->
      El ID de este tema es
      {{this.topicId}}
      <!-- puedes editar el contenido de arriba -->
    {{/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);
  });
});

Puedes encontrar el ID de la categoría en su URL para configurar desiredCategories, por ejemplo, la categoría de soporte aquí en Meta tiene el ID 6

Puedes agregar CSS para darle el estilo que desees con la pestaña CSS… por ejemplo

.custom-topic-id {
  display: inline-block;
  background: yellow;
}

3 Me gusta