Como colocar comentários do Discourse em outro local além do padrão?

Estou personalizando um site WordPress e quero colocar um link para o tópico do Discourse de uma postagem específica em um local personalizado no HTML.

(Detalhes: Estou personalizando um site do curso LearnDash e o “modo de foco” do LearnDash remove a maioria dos elementos padrão de layout do WordPress, incluindo comentários. Gostaria de usar um dos hooks do LearnDash para inserir um link para o fórum de uma lição específica.)

Alguém pode me indicar o caminho certo para algum código do wp-discourse que eu possa invocar para gerar o markup de “link para o tópico”?

Obrigado!

Confira o título “Exibindo o template de comentários com o tema Timber” em WP Discourse plugin tips and tricks.

Obrigado… mas isso parece estar um pouco desatualizado. O caminho referenciado:

 WPDISCOURSE_PATH . 'templates/comments.php'

…não parece corresponder a nenhum caminho na minha instalação do wp-discourse.

Eu nem preciso carregar a lista de comentários do Discourse; ficaria satisfeito apenas com um link para o tópico do Discourse. Mas não consigo descobrir como usar o código do wp-discourse para obter esse link :-/

Acabei fazendo isso, apenas referenciando o postmeta sem usar nenhum código do WP-Discourse.

Nunca consegui fazer nada funcionar envolvendo a listagem de comentários… todas as funções que encontrei parecem querer retornar HTML com vários {placeholders} :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">
                    💬 Comente aqui! (<?php echo $comment_count ?> comentários)
                </a>
            </div>
        <?php
    }

Uau, 7 anos desde sua última postagem. Bem-vindo de volta, @avdi! Talvez @simon possa dar uma orientação amanhã.

Você tem razão. Essa abordagem não funciona mais. Acredito que posso adicionar uma função de utilitário ao plugin para facilitar a exibição dos comentários fora da área de comentários do WordPress. Preciso fazer uma pequena atualização no plugin nos próximos dias; tentarei incluir uma função display_discourse_comments na atualização. Avisarei quando estiver disponível.

Adicionei uma função auxiliar estática ao plugin que pode ser usada para exibir comentários sem carregar o modelo de comentários do Discourse. A função está aqui: get_discourse_comments. Ela exige que você forneça o post_id da postagem do WordPress para a qual deseja exibir os comentários. Aqui está um exemplo simples de uso:

<?php
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments( 859 );
echo $discourse_comments;

Ela exibe os comentários da mesma forma que seriam exibidos se você selecionasse a opção “Ativar comentários do Discourse/Exibir comentários” (encontrada na aba Configurações de Comentários do plugin). Quando essa função é usada, o valor dessa configuração é ignorado, mas todas as outras configurações nessa página são respeitadas.