現在、これに取り組んでいます。最初のバージョンは、フロントエンドにRemixフレームワークを使用するヘッドレスWordPressサイト向けです。それが完了したら、通常のWordPressサイト向けのバージョンを作成します。おそらく、WP Discourseプラグインを拡張するプラグインになるでしょう。ヘッドレスWordPressサイトで行っていることの多くは、通常のWordPressサイトに転用できると期待していますが、いくつかの妥協が必要になるかもしれません。
外部サイトから直接コメントできるようにすることは、実装が簡単です。主な要件は、外部サイトがユーザーのDiscourse認証情報にアクセスできることです。これは、外部サイトをDiscourseのDiscourseConnectプロバイダーとして使用するか、Discourseを外部サイトのDiscourseConnectプロバイダーとして構成することによって実現できます。
2番目のシナリオ(外部サイトがDiscourseのDiscourseConnectプロバイダーではない場合)では、ユーザーが外部サイトからコメントしたい場合、外部サイトのアカウントをDiscourseアカウントに接続するためのリンクをクリックする必要があります(または、まだ登録していない場合はDiscourseに登録する必要があります)。ユーザーの視点からは、かなりシームレスに行うことができます。
ただし、上記の変更だけでは、全体が通常のコメントシステムのように感じるようにはなりません。コメントシステムに対する通常の期待は、すべてのコメントを読み取り、操作できることです。WP Discourseプラグインは、Discourseが提供する特別なルートから取得されたコメントの選択のみを表示します。コメントを操作するための機能は提供していません。
問題の難しい点は次のとおりです。
- WordPressでトピックのすべてのコメントをページネーションすること。数千になる可能性があることを考慮に入れる必要があります。
- 長いコメントリストの中でユーザーがどこにいるかについてのフィードバックを提供するUIを提供すること。
- 他のコメントに直接返信されたコメントを表示する方法を見つけること。(Discourseのこのための規約は、ほとんどのコメントシステムが返信を処理する方法とは一致しません。)
- ユーザーがコメントに直接返信したり、コメントに「いいね!」を付けたり、自分のコメントを編集したりできるようにすること。
- Discourse上で作成されたコメントを処理すること。これは、外部サイトで簡単にレンダリングまたは操作できないコンテンツやマークアップを含んでいる可能性があります。たとえば、onebox、投票など。
- コメントを最近、古い順、ベスト順などでフィルタリングする方法を提供すること。
これらすべては、外部サイトのサーバーに過度の負荷をかけたり、Discourseに過剰なAPIリクエストを送信したり、ユーザーのデバイスのメモリを過剰に消費したりすることなく(軽量なコメントシステムにすることが目標です)、達成する必要があります。これは達成可能ですが、既存のWP Discourseコードに大幅な変更を加えることなく、そのまま組み込むことができるものではありません。