WordPress のコメントシステムとして Discourse を使用できます。コメント機能は公開機能に依存するため、コメントを機能させるには公開設定が必要です。公開設定が完了し、コメント設定の準備ができた場合は、この短いビデオを視聴するか、以下の手順に従ってください。
次のステップ
コメントを設定したら、次のトピックを確認することをお勧めします。
手順
コメントの設定
Discourse のコメントを WordPress サイトに表示するには、Discourse コメントを有効にする 設定を選択する必要があります。有効にすると、2 つのオプションが表示されます。コメントを表示する オプションは、Discourse に公開された各 WordPress 投稿にコメントテンプレートを読み込みます。このテンプレートは、WordPress 投稿の下に Discourse コメントを表示します。コメントへのリンクを表示する オプションは、公開された投稿の下に関連する Discourse トピックへのリンクを表示するコメントテンプレートを読み込みます。リンクにはトピックへの返信数が表示されますが、WordPress には返信は表示されません。
これらのコメントオプションはどちらも、WordPress 投稿のコメントテンプレートを読み込むことによって機能します。これは、コメントが投稿で有効になっている場合にのみ機能することを意味します。すべての投稿でコメントを有効にしたいが、Discourse に公開されていない投稿の履歴 WordPress コメントを表示したくない場合は、WordPress コメントテンプレートを削除する 設定を有効にします。
設定
その他のコメント設定が何をするかについての簡単な説明を以下に示します。それでも不明な点がある場合は、このトピックに返信して詳細を質問してください。
Ajax でコメントを読み込む
この設定は、サーバーから読み込むのではなく、WordPress クライアントからコメントを読み込むために使用されます。これは、ページキャッシュがサイトで新しいコメントの読み込みを妨げている場合に役立ちます。
コメント CSS を読み込む
この設定は、WordPress に表示される Discourse の onebox や引用符の問題を修正するスタイルシートを読み込みます。
既存の WP コメントを表示する
Discourse にも公開されている投稿の既存の WordPress コメントも表示するには、この設定を選択します。
既存コメントの見出し
既存のコメントを表示している場合、この設定は WordPress コメントの上にヘッダーを追加します。
選択的インポート設定
コメントを選択的にインポートできるいくつかの設定があります。これらは自明であるはずです。各デフォルト値は開始点として適しているため、理由がない限り変更しないでください。
- 最大表示コメント数
- 返信の最小数
- 投稿の最小スコア
- 最小信頼レベル
- 信頼レベルスコアをバイパスする
- モデレーターが「いいね!」したコメントのみインポートする
カスタム日時フォーマット
この設定は、WordPress サイトに表示される各 Discourse コメントの日付をフォーマットします。デフォルト値から始めてください。日付フォーマットを変更したい場合は、設定の説明にあるリンクをクリックして詳細を確認してください。
コメント HTML をキャッシュする
この設定はパフォーマンスを向上させるために使用できます。コメント HTML をキャッシュすると、Discourse へのリクエスト数が削減されます。関連する設定 キャッシュされたコメント HTML をクリアする は自明であるはずです。
詳細なコメントログ
これを有効にすると、エラー(デフォルト)に加えて、Discourse からのすべてのコメントの取得がログに記録されます。
コメントデータ同期 Webhook
「Webhook」設定パネルで Sync Comment Data Webhook を有効にすると、WordPress から Discourse への API リクエスト数を大幅に削減できます。Webhook を有効にする前に
-
設定の説明に記載されている Discourse URL (
http://forum.example.com/admin/api/web_hooks.) にアクセスします。 -
「新しい Webhook」ボタンをクリックしてフォームに入力します。
-
ペイロード URL フィールドに、WP Discourse の
コメントデータ同期フィールドの説明に記載されている URL を入力します。これは、WordPress サイトの URL を使用する以外は、次のようになります:https://wp-discourse.dev/wp-json/wp-discourse/v1/update-topic-content。 -
コンテンツタイプフィールドが
application/jsonに設定されていることを確認します。 -
Secret 入力フィールドに、12 文字以上のテキスト文字列を入力します。次に、この同じキーを WP Discourse の
Webhook シークレットキー設定にコピーします。 -
「この Webhook をトリガーするイベントはどれですか?」ボックスで、「投稿イベント」が選択されていることを確認します。
-
WordPress から特定のカテゴリにのみ投稿を公開する場合は、トリガーカテゴリフィールドを使用します。これにより、WordPress サイトは、関連する Discourse 投稿がないトピックのリクエストを処理する必要がなくなります。
-
ペイロード URL の TLS 証明書を確認する設定は有効のままにします。
最後に、「アクティブ」チェックボックスを有効にして、作成をクリックします。Webhook が保存されたら、「イベントに移動」ボタンをクリックします。
-
-
WordPress に戻り、Discourse からの Webhook シークレットを
Webhook シークレットキーフィールドに入力し、コメントデータ同期Webhook 設定を有効にしたことを確認します。次に、オプションを保存します。
これで Discourse Webhook が機能するはずです。Discourse の Webhook の「Ping」ボタン(/admin/api/web_hooks/:webhook_id/events にあります)をクリックして確認してください。Webhook の Ping がステータスコード 200 を返していることを確認してください。
WordPress アーカイブページ用の comments_number 同期期間の調整
投稿の正しい Discourse コメント数を取得するために、プラグインは現在のコメント数を取得するために定期的に Discourse への HTTP リクエストを行う必要があります。単一ページでは、この期間は 10 分ごとに設定されます。アーカイブページでは、期間は 24 時間ごとに 1 回に設定されます。これは、アーカイブページにアクセスするたびに Discourse への複数のリクエストを行うことを避けるためです。
サイトのアーカイブページを表示する際に、プラグインが Discourse へのリクエストを多すぎると感じる場合は、'discourse_archive_page_sync_period' フィルターにフックして archive_page_sync_period を調整できます。テーマの functions.php ファイルに次のようなものを追加します。
add_filter( 'discourse_archive_page_sync_period', 'my_namespace_archive_page_sync_period' );
function my_namespace_archive_page_sync_period( $sync_period ) {
// This will change to sync_period for archived posts to once a week.
return WEEK_IN_SECONDS;
}
プラグインがアーカイブページの現在のコメント数を取得するために Discourse へのリクエストを十分に実行していないと感じる場合は、テーマの functions.php ファイルに次のようなものを追加できます。これにより、archive_page_sync_period が 10 分に設定されます。
注意: 忙しいサイトでは、サーバーに大きな負荷がかかる可能性があります。
add_filter( 'discourse_archive_page_sync_period', 'my_namespace_archive_page_sync_period' );
function my_namespace_archive_page_sync_period( $sync_period ) {
// This will change to sync_period for archived posts to once a week.
return 10 * MINUTE_IN_SECONDS;
}
WordPress コメントテンプレートを読み込まずにコメントを表示する
WP Discourse プラグインは、Discourse コメントを読み込むために WordPress コメントテンプレートを使用します。テーマがコメントテンプレートを読み込んでいない場合は、静的 get_discourse_comments ヘルパー関数を使用してコメントを表示できます。この関数には、コメントを表示したい WordPress 投稿の ID を指定する必要があります。以下にその簡単な使用例を示します。
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments(859);
echo $discourse_comments;
コメントは、プラグインのコメント設定タブにある「Discourse コメントを有効にする/コメントを表示する」オプションを選択した場合と同じ方法で表示されます。この関数が使用されると、その設定の値は無視されますが、他のすべてのコメント設定は尊重されます。
トラブルシューティング
Discourse コメントの最も一般的な問題は、Discourse で投稿が行われた直後に表示されない場合があることです。この遅延は意図的なものであり、プラグインは Discourse へのリクエスト数を減らそうとします。ページが読み込まれるたびにリクエストを行うと、サイトが遅くなります。コメントがすぐに表示されない場合は、10 分待ってからページを再度更新してください。
Discourse と WordPress の両方のコメントを表示する場合のコメント数に関する問題
wp-discourse プラグインは、WordPress の get_comments_number フィルターフックを使用しているため、投稿に対して作成された Discourse コメント数をテーマ全体に表示できます。これは、投稿に対して Discourse と WordPress の両方のコメントが表示されている場合に競合が発生します。プラグインはほとんどの場所でその競合を解決できます。解決できない場所の 1 つは、WordPress テーマがコメントセクションの先頭によく表示するコメントタイトルです。「考えは 2 件…」のようなもので始まるセクションです。
これを簡単に行うには、テーマの CSS ファイルにルールを追加します。
.discourse-comments-area ~ .comments-area .comments-title {
display: none;
}


