avdi
(avdi)
1
WordPress サイトのカスタマイズを行っており、特定の投稿の Discourse スレッドへのリンクを HTML のカスタム場所に配置したいと考えています。
(詳細:LearnDash コースサイトのカスタマイズを行っており、LearnDash の「フォーカスモード」では、コメントを含む標準的な WordPress のレイアウト要素のほとんどが非表示になります。特定のレッスンに対してフォーラムへのリンクを挿入するために、LearnDash のフックのいずれかを使用したいと考えています。)
「スレッドへのリンク」のマークアップを出力するために呼び出せる wp-discourse のコードについて、適切な方向を示していただけないでしょうか?
ありがとうございます!
「いいね!」 2
maiki
(maiki)
2
WP Discourse plugin tips and tricks の「Timber テーマでコメントテンプレートを表示する」という見出しをご覧ください。
「いいね!」 3
avdi
(avdi)
3
ありがとうございます…ただし、それは少し古いようです。参照されているパス:
WPDISCOURSE_PATH . 'templates/comments.php'
は、私の wp-discourse のインストールにあるどのパスとも一致していないようです。
「いいね!」 1
avdi
(avdi)
4
Discourseのコメントリストを読み込む必要すらありません。Discourseスレッドへのリンクがあれば満足です。しかし、wp-discourseのコードを使ってそのリンクを取得する方法がわかりません :-/
avdi
(avdi)
5
結局、WP-Discourse のコードは一切使わず、postmeta を参照するだけにしてしまいました。
コメントの一覧表示に関連する機能は、どうしても動作させることができませんでした。見つかったすべての関数は、{プレースホルダー} がたくさん含まれた HTML を返そうとするようですね 
$discuss_url = get_post_meta($post_id, 'discourse_permalink', true);
$comment_count = get_post_meta($post_id, 'discourse_comments_count', true);
if($discuss_url) {
?>
<div class="lac-lesson-discuss">
<a href="<?php echo $discuss_url ?>" target="lac_discuss">
💬 これについて議論する!(<?php echo $comment_count ?> コメント)
</a>
</div>
<?php
}
「いいね!」 4
わあ、最後の投稿から7年ですね。ようこそ戻ってこられました、@avdi さん!もしかしたら @simon さんが明日アドバイスしてくれるかもしれません。
「いいね!」 3
simon
7
おっしゃる通りです。そのアプローチはもはや機能しません。WordPress のコメントエリアの外でコメントを表示しやすくするために、プラグインにヘルパー関数を追加できると思います。今後数日以内にプラグインの小さなアップデートを行う必要があり、そのアップデートに display_discourse_comments 関数を追加しようと思います。利用可能になったらお知らせします。
「いいね!」 3
simon
8
Discourse のコメントテンプレートを読み込まずにコメントを表示するために、プラグインに静的ヘルパー関数を追加しました。この関数はこちらにあります:get_discourse_comments。表示したい WordPress の投稿の post_id を指定する必要があります。以下は簡単な使用例です:
<?php
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments( 859 );
echo $discourse_comments;
この関数は、プラグインの「コメント設定」タブにある「Discourse コメントを有効にする/コメントを表示する」オプションを選択した場合と同じ方法でコメントを表示します。この関数を使用すると、その設定値は無視されますが、そのページ上の他のすべての設定は尊重されます。
「いいね!」 2