デフォルトのコメント場所以外にDiscourseのコメントを表示させるには?

WordPress サイトのカスタマイズを行っており、特定の投稿の Discourse スレッドへのリンクを HTML のカスタム場所に配置したいと考えています。

(詳細:LearnDash コースサイトのカスタマイズを行っており、LearnDash の「フォーカスモード」では、コメントを含む標準的な WordPress のレイアウト要素のほとんどが非表示になります。特定のレッスンに対してフォーラムへのリンクを挿入するために、LearnDash のフックのいずれかを使用したいと考えています。)

「スレッドへのリンク」のマークアップを出力するために呼び出せる wp-discourse のコードについて、適切な方向を示していただけないでしょうか?

ありがとうございます!

「いいね!」 2

WP Discourse plugin tips and tricks の「Timber テーマでコメントテンプレートを表示する」という見出しをご覧ください。

「いいね!」 3

ありがとうございます…ただし、それは少し古いようです。参照されているパス:

WPDISCOURSE_PATH . 'templates/comments.php'

は、私の wp-discourse のインストールにあるどのパスとも一致していないようです。

「いいね!」 1

Discourseのコメントリストを読み込む必要すらありません。Discourseスレッドへのリンクがあれば満足です。しかし、wp-discourseのコードを使ってそのリンクを取得する方法がわかりません :-/

結局、WP-Discourse のコードは一切使わず、postmeta を参照するだけにしてしまいました。

コメントの一覧表示に関連する機能は、どうしても動作させることができませんでした。見つかったすべての関数は、{プレースホルダー} がたくさん含まれた HTML を返そうとするようですね :confused:

    $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

おっしゃる通りです。そのアプローチはもはや機能しません。WordPress のコメントエリアの外でコメントを表示しやすくするために、プラグインにヘルパー関数を追加できると思います。今後数日以内にプラグインの小さなアップデートを行う必要があり、そのアップデートに display_discourse_comments 関数を追加しようと思います。利用可能になったらお知らせします。

「いいね!」 3

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