Ghost+Discourseコメントの問題 (WordPressからの移行も同様)

WordPress(Discourseコメント付き)からGhost(Discourseコメント付き)へブログを移行しようとしているのですが、Official Ghost + Discourse Integration の指示に従ってコメントを設定したところ、いくつか解決すべき問題が発生しました。お付き合いいただければ幸いです。

  1. 埋め込み設定で「インポートされたトピックは返信があるまでリストに表示されません」にチェックを入れていないのですが、新しい投稿にアクセスすると、トピックが作成されてもコメントが投稿されるまでリストに表示されません。これを回避し、Ghostに投稿されると同時にトピックが作成され、リストに表示されるようにする方法はありますか?

    また、この設定の意味を誤解している場合、実際には何をする設定なのでしょうか?

    (推奨されていないにもかかわらず、読者の多くがブログ自体ではなくDiscourseコミュニティを新しい投稿のソースとして利用することを主張しており、彼らをサポートする必要があります。)

  2. ブログがWordPressだった頃は、WordPress Discourseプラグインを使用していました。ブログ投稿に一致するトピックが作成されると、ここにある中央のトピックで見られるように、Discourseにリンクが投稿されたかのように表示されていました。

    この動作を元に戻すために、埋め込みコード/設定を変更する方法はありますか?これはインデックスからの便利なリンクであり、「コメント」投稿と「コミュニティ」投稿を明確に区別するものでした。

  3. 最も重要なことですが、既存のDiscourseコメントがあった投稿(WordPressプラグイン経由)にアクセスすると、そのページのコメントセクションが「Loading Discussion…」で永遠に固まってしまいます。そのような埋め込みが、そのURLに一致する既存のトピックにリンクすることを期待していましたし、もちろんそれは非常に重要です。それを実現する方法を見つけた人はいますか?

    (例えば、Spooooky とその対応するトピック Spooooky - General - The Eldraeverse を参照してください。)

    これらの問題について、どのような assistance でも大変感謝いたします!

コードを詳しく確認する必要がありますが、Discourse側では、埋め込みレコード(正確な名称は覚えていません)のURLが、新しいサイトが渡すURLと同じであることを確認する必要があると思います。

したがって、新しい埋め込みサイトの discourseEmbedUrl が新しいものと一致している(またはDiscourseのレコードで変更する)限り、問題ないと思います。

  DiscourseEmbed = {
    discourseUrl: 'https://discourse.example.com/',
    discourseEmbedUrl: '[EMBED_URL](http://example.com/blog/entry-123.html)',
    // className: 'CLASS_NAME',
  };
「いいね!」 1

残念ながら、私の知る限りではそうなっています。開発者ツールでブログページを確認したところ、Discourseのコメントが表示されるべき場所に以下のものが表示されています。

スクリプト内の discourseEmbedUrl パラメータは以下のようになっています。
https://eldraeverse.com/2024/10/28/spooooky/

そしてDiscourseのトピックでは、トピック上部のリンクと、最初の投稿の「Originally published at:」の挿入部分の両方で、同じURLが表示されています。(Discourseで元の埋め込みレコードを他に確認すべき特定の場所があるか分かりませんが、トピック自体で見られるものはすべて一致しています。)

編集: 明確にするために、以前はWP Discourseプラグインを使用していました。これはDiscourseの埋め込み設定を使用して構成されていないため、古い設定を直接確認することは残念ながらできません。しかし、新しいGhostブログのすべてのトピックページのURLがWordPressブログから変更されないようにしたので、すべて自動的に同じになるはずです。

Railsでは、

 TopicEmbed.all

または

 TopicEmbed.pluck(:topic_id, :embed_url)

で確認できます。それが一致すれば問題ないはずですが、読み込まれていないということは、Discourseで他のサイトからの埋め込みを許可していないのだと思います。

前者については、私のDiscourseは皆様がホストしているか、少なくともその方法がわからないため、実行する権限がないと思います。

後者については、よくわかりません。私の埋め込み設定は次のとおりです。

これで、古いサイトと新しいサイトの両方のURLが一致するはずですよね?コメントトピックの読み込みに失敗する投稿のURLは、成功する投稿のURLと、末尾の投稿固有のスラッグを除いて同一ではありませんか?

ああ、すみません。私は主にセルフホスト(または自分ホスト)のことしか考えていませんでした。ビジネスホスティングをご利用の場合は、データエクスプローラープラグインでそのようなことができるかもしれません。

embed any origin をオンにして、それが修正されるかどうかを確認してみてください。最悪の場合、埋め込みは読み込まれますが、期待していたコメントは表示されないと思います。

残念ながら、一介のpro bonoユーザーです。SF執筆は、私の望むほど儲かるものではありません。:smile:

embed any originを試しましたが、残念ながら動作に変化はありませんでした。

WP Discourseプラグインのソースコードも確認しましたが、これはDiscourse APIと通信して機能を実現しているだけで、通常の埋め込みサポートは一切使用していないようです。GhostでのDiscourseの埋め込み表示を見てみると、これは驚くことではありません。古いWordPressのコメントは見た目も動作も異なっていました。

そのため、Discourse側でそれらのトピックの埋め込みURLが記録されているのかどうか疑問に思っています。もっとも、それはなぜ新しい(埋め込み)トピックが現在表示されずに壊れているのかという疑問を招きますが、それらのトピックにURLを追加する方法があるのでしょうか?)

「いいね!」 1

簡単な実験をしてみました。WP Discourseプラグインで作成されたトピックを削除すると、その後Ghostブログでその同じ投稿にアクセスすると、埋め込みによって新しいトピックが作成されます。明らかに、WP Discourseのトピックは、表示されなくても埋め込みが機能するのをブロックできるようです。

もちろん、それは実行可能な解決策ではありませんが、データポイントにはなります。