Ability to place custom fields in post header?

Вы правы, этот код теперь устарел, так как мы заменили систему виджетов. Вот информация об этом за прошлый год: Upcoming post stream changes - How to prepare themes and plugins .

Всё ещё можно заставить это работать, но вам придётся использовать компонент Glimmer. Это может выглядеть примерно так:

import Component from "@glimmer/component";
import { apiInitializer } from "discourse/lib/api";

class UserFieldBadge extends Component {
  static shouldRender(args) {
    return !!args.post?.user_custom_fields?.user_field_4;
  }

  <template>
    <span class="poster-user-field">
      {{@post.user_custom_fields.user_field_4}}
    </span>
  </template>
}

export default apiInitializer((api) => {
  api.renderAfterWrapperOutlet("post-meta-data-poster-name", UserFieldBadge);
}); 

Помните, что в этом коде user_field_4 нужно заменить на фактическое поле, которое вы хотите отображать.

Оставлю другим участникам возможность модифицировать этот код так, чтобы он мог отображать ВСЕ публичные пользовательские поля. :wink:

1 лайк