您说得对,这段代码现在已经过时了,因为我们替换了 widget 系统。这是我们去年发布的一些相关信息:Upcoming post stream changes - How to prepare themes and plugins 。
仍然有可能让它工作,但您需要使用 Glimmer Component。它可能看起来像这样:
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 与您想要显示的实际字段相匹配。
我将把修改此代码以显示所有“公共用户自定义字段”的任务留给其他人。 ![]()