トピックのexternal_idをプログラムで取得する方法

以前は全く気づきませんでした。数年前に WordPress の投稿 ID を Discourse のトピックに関連付けるための同様のものを探していました。

トピックの external_id は、トピックに external_id がある場合にのみクライアント上のプロパティとして返されます。そのため、トピックにそれがない場合、null 値は取得されません。これは external_id を持つトピックで機能しています。

<script type="text/discourse-plugin" version="0.11.0">
api.onPageChange (() => {
    const c = api.container.lookup("controller:topic");
    if (c) {
        const m = c.get("model");
        if (m && m.hasOwnProperty('external_id')) {
        console.log("the external_id is ", m.external_id);
        }
    }
});
</script>