こんにちは。こんにちは。
私は、https://www.svetandroida.cz/ という大手テクノロジー系オンラインマガジンを運営しています。以前、ユーザーにいくつかのコミュニティ機能(通知、ユーザーレビュー、カルマなど)を提供しようと試みましたが、WordPressはネイティブでこれらの機能をサポートしておらず、サードパーティのソリューションはしばらくすると問題が発生していました。
そのため、WordPressはマガジン機能のみに特化させ、コンテンツをできるだけ迅速かつクリーンに表示することにしました。そして、コミュニティ関連の機能はすべてDiscourseに完全に移行することにしました。Discourseはこの種のタスクをはるかにうまく処理できます。
このセットアップは私にとって完全に理想的だと思われます。しかし、私たちは約13年間マガジンを運営しており、その間に何十万ものコメントと数万人の登録ユーザーがいました。Discourseの統合を最もエレガントで、ユーザーの観点から最も効果的なものにする方法について、ご意見をお聞かせいただけますでしょうか?
事実:
- WordPressのマガジンはhttps://www.svetandroida.cz/ で運営されています。
- コミュニティはhttps://komunita.svetandroida.cz/ で運営しています。
- ユーザーアカウントの管理にはDiscourseを使用したいと考えています。こちらの方が優れていると感じています。
- 毎日約5〜15の記事を公開しています。
- 数万件の記事があります(すでにたくさん削除しました :))。
- アクティブにコメントしているユーザーは、数十人から数百人です。
- DiscourseのWordPressプラグインはセットアップ済みで、すべて正常に動作しているように見えます。まだ設定していないのはSSOだけです。
- WordPressマガジンで公開する記事は、Discourseに非表示として自動的に公開されます。
対処すべきことと、その対処方法は?より良い解決策はありますか?
ユーザーログイン
WordPressプラグインを使用してDiscourseConnectクライアントをセットアップする予定ですが、エディタへのアクセスが壊れたりブロックされたりしないことを願っています :)。冗談ですが、これは議論を注意深く読んだ後でも、まだ100%確信が持てない唯一の場所です。
WordPressマガジンサイトにログインしたいユーザー(すでにWordPressアカウントを持っている)の場合、Discourseにも自動的にアカウントが作成されることを期待しています。
もし万が一それが起こらなかった場合、数十人のユーザーに既存のWordPressユーザーアカウントを忘れて、Discourseで新しいアカウントを作成するように依頼しても大丈夫だと思います。
記事のコメントについて
現在、WordPressにすでに公開されているユーザーのコメントを、新しく立ち上げたDiscourseに転送するエレガントな方法が見つかっていません。もし私が間違っている場合は、ご指摘ください。
そのため、すでに公開されているコメントはWordPressに残され、新しいコメントのみがDiscourseに公開されます。
公開済みのコメントをWordPressの記事の下に戻すことはしません。WordPressの記事の下には、特定のDiscourse記事にリンクするリンクのみを配置します。
現在の方法では、公開されたすべての記事が非表示としてDiscourseに転送され、Discourseで新しいコメントが追加されたときにのみ表示されるようになります。この解決策は悪くありませんが、私たちの場合は、管理者である私がDiscourseで何千もの非表示のスレッドを見ることになります :(。
これをもっとエレガントに解決する方法はありませんか?例えば、WordPressで公開された記事が、公開時に非表示としてDiscourseに転送されるのではなく、WordPress記事の下のリンクをクリックしてコメントが追加されたときにのみDiscourseスレッドが作成される、といった方法です。
そうすれば、フォーラムに何千もの見えないスレッドが存在することはありません。
そして、もしそれが完全に完璧であれば、WordPressからの「マジックリンク」を介して、Discourseスレッドは一時的にのみ作成され、もしコメントが追加されず、ユーザーが気が変わったり離れたりした場合、しばらくするとスレッドが削除される、といった具合です。
ここまで読んでいただきありがとうございます(報酬としてAI画像を添付します)。皆様のアイデアや洞察を楽しみにしています。
「いいね!」 2
simon
2
DiscourseConnectクライアント機能は、他のソーシャルログイン機能と同様の方法で機能します。例えば、Facebook経由でWordPressにログインするのと似ていますが、Facebookの代わりにDiscourseサイトが認証プロバイダーとなります。つまり、ユーザーがDiscourseConnectを使用してWordPressサイトにログインするには、まずDiscourseサイトにアカウントを作成する必要があります。ただし、Discourseアカウントを作成しなくても、WordPressサイトへのログインは可能です。WordPressサイトがDiscourseConnectクライアントの場合、WordPressの通常のユーザー名/パスワードログインも引き続き利用できます。
WordPressサイトへのログインに慣れているユーザーがたくさんいる場合、WordPressサイトをDiscourseサイトのDiscourseConnect _プロバイダー_として使用することを検討する価値があるかもしれません。そのように設定すれば、既存のすべてのユーザーが新しいDiscourseサイトに簡単にログインできるようになります。WordPressサイト上のリンクをクリックするだけで済みます。そのためのリンクの作成方法については、こちらをご覧ください。DiscourseConnectログインリンクを作成する。
サイトのソーシャル機能をWordPressからDiscourseに完全に移行したいと考えているようですので、WordPressサイトをDiscourseConnectプロバイダーとして使用しない理由があるかもしれません。私の懸念は、ユーザーがDiscourseサイトに新しいアカウントを作成することを要求するのではなく、WordPressアカウントにログインしてリンクをクリックするだけでフォーラムにアクセスできるという方法では、一部のユーザーが新しいサイトへの参加を妨げられる可能性があるということです。
WordPressをDiscourseConnect _プロバイダー_として使用する場合に注意すべき主な点は、そのように設定されている場合、Discourseへの唯一のログイン方法となることです。つまり、一部のユーザーはWordPress経由でDiscourseにログインし、他のユーザーはDiscourseサイトでユーザー名/パスワードでアカウントを登録してDiscourseにログインするということはできません。Discourseサイトにアクセスするには、すべてのユーザーがWordPressにアカウントを持っている必要があります。
WordPressをDiscourseConnectクライアントとして使用する場合とDiscourseConnectプロバイダーとして使用する場合の違いが明確でない場合は、お知らせください。
技術的には可能ですが、十分にテストされた方法はないと思います。このコミュニティの他のメンバーが、そのアプローチ方法についてアイデアを持っているかもしれません。
可能かもしれません。しかし、問題を引き起こす可能性があると感じています。
Discourseサイトでは、URLに次のクエリ文字列を追加することで、リストされていないトピックを除外できます: ?status=listed。例: \u003chttps://meta.discourse.org/latest?status=listed\u003e。「公開」および「非公開」トピックの表示を切り替えるために使用できる既存のテーマコンポーネントがあります: https://meta.discourse.org/t/topic-status-filter/111307。もしそれがまだ存在しない場合、そのフィルターに「公開」と「非公開」のステータスを追加するのは比較的簡単でしょう。しかし、その場合、フィルターはスタッフユーザーのみに表示したいだけでしょう。
これは、cronジョブで処理されるAPIリクエストをWordPressから行うことで実現できます。
「いいね!」 6
お時間とご回答ありがとうございます。
DiscourseConnectについては、詳細なご説明のおかげで理解できました。WordPressでDiscourseConnectをクライアントとして設定しましょう。
古いコメントは、WordPressからDiscourseに移行する労力に見合うだけの価値がない可能性が高いです。
しかし、公開された記事に基づいた議論については、まだ気になっています :)。フィルターは、管理者が「非表示」のスレッドを見ないようにするための解決策ですが、どういうわけか、別の方法があるのではないかという考えを捨てきれません。
問題を引き起こす可能性があるとのことでしたが、懸念されている問題の状態をいくつかリストアップしていただけますでしょうか?
APIはおそらく解決策になるでしょうが、私たちはプログラマーではないため、それがどのように機能するかを十分に想像できません。
simon
4
私が想像している動作は、ユーザーが(まだ公開されていない)Discourseトピックへのリンクをクリックすると、WordPressのバックエンドでトピックをDiscourseに公開する関数がトリガーされるというものです。ユーザーがリンクをクリックしたときにDiscourseへのトピック公開をトリガーすることは可能です。
私が懸念している問題点:
-
まだ公開されていないトピックの場合、リンクは何を指しているのでしょうか?トピックが公開された後でなければ、Discourse上のトピックのURLはわかりません。ユーザーがリンクをクリックしたときに、バックグラウンドでトピックが公開され、Discourseから受信した応答に基づいて、ユーザーがDiscourseトピックにリダイレクトされるように、何かを開発する必要があります。
-
あなたのサイトが非常に混雑していて、多くのユーザーが同時にDiscourseトピックの公開をトリガーするリンクをクリックした場合、何が起こるかわかりません。おそらく問題ないでしょうが、リスクがあるように感じます。
編集:最初の問題に対処する一つの方法は、ユーザーに何が起こっているかを知らせ、「トピックを公開中ですのでお待ちください」というメッセージを表示することです。トピックが公開されたら、トピックへのリンクを生成し、ユーザーにクリックを促すことができます。このプロセスには数秒かかるかもしれません。
「いいね!」 2
WordPressサイトの記事の下に、ディスカッションに参加するための通常のリンクを配置する簡単なJavaScriptを作成したいと考えています。まず、JavaScriptは関数(Discourseでスレッドを作成する。これはWPプラグインがすでに実行していること)を呼び出し、スレッドが作成されていることをユーザーに示します。そして、JavaScriptがDiscourseからスレッドが作成されたという情報を受け取ると、ユーザーをDiscourseのコメントスレッドにリダイレクトします。
これで合っていますか、それとも単純化しすぎでしょうか? 
simon
6
ユーザーを自動的にリダイレクトしない方が簡単ですが、あなたが概説したことは正しいです。ユーザーがトピックを生成するためのリンクをクリックした後、スクリプトはWordPressサーバーからトピックURLを取得するために定期的にリクエストを行います。URLを取得したら、ユーザーをDiscourseトピックにリダイレクトします。
「いいね!」 2