Como depurar um post no WP com número de comentários incorreto

Acabei de notar uma postagem no nosso site WordPress que apareceu como se não tivesse comentários, mas eu sabia que ela recebeu um no Discourse. Deixei outro comentário sobre esse tópico e ele também não apareceu. No entanto, há outras postagens recebendo comentários sem problemas. Não consigo ver nada estranho ou especial naquela postagem.

Há algo que eu possa fazer para depurar o problema?

Certifique-se de que os comentários no post atendem aos critérios definidos na aba Opções de Comentários do plugin. Se parecer que os comentários dos posts deveriam estar sendo puxados para o WordPress, você pode depurar o problema ativando a opção de tela ‘Campos Personalizados’ para posts no seu site:

Após fazer isso, você verá uma lista de metadados do post na parte inferior da tela de edição. Verifique se os campos discourse_permalink e discourse_topic_id correspondem ao tópico do Discourse associado. Se esses campos não estiverem presentes, é possível que o post tenha sido desvinculado do Discourse. Você pode re-vincular um post desvinculado selecionando a entrada de opção de rádio ‘Vincular a Tópico Existente’ na caixa de metadados do Discourse.

Obrigado,

A coisa fica ainda mais estranha. Acabei de assistir a um comentário chegar em uma postagem totalmente nova. A página inicial do nosso site WordPress mostrou imediatamente um comentário naquela postagem. Até agora, tudo parecia certo. Em seguida, ao clicar na postagem, as informações no topo indicavam que havia um comentário.

Cliquei no número de comentários para rolar até o local apropriado na página, mas, em vez de dizer “Participe da discussão”, aparecia “Inicie a discussão”. (Na verdade, não exibimos os comentários, apenas a contagem deles e o link para nossa instância do Discourse.) Achei que uma atualização da página resolveria, mas, ao atualizar, a mensagem voltou a indicar que havia zero comentários. E a página inicial também atualizou para zero.

Verifiquei o discourse_topic_id e o discourse_permalink, e ambos estão corretos. No entanto, os outros campos do Discourse não fazem muito sentido para mim.

O discourse_comments_count diz ‘0’

Isto é o que está em discourse_comments_raw:

{"id":1399,"posts_count":2,"filtered_posts_count":0,"posts":[],"participants":[{"id":11,"username":"nathan","name":"Nathan ","avatar_template":"https://www.ourdiscourse.com/user_avatar/www.ourdiscourse.com/nathan/{size}/182_2.png"},{"id":103,"username":"Zak","name":"Zak","avatar_template":"https://www.ourdiscourse.com/user_avatar/www.ourdiscourse.com/zak/{size}/652_2.png"}]}

Além disso, não consigo entender o que o discourse_post_id deveria ser. Apenas olhando para o número de quatro dígitos que ele contém, eu esperaria que fosse o ID da postagem do WordPress, mas não é. O que ele deveria ser?

Se o seu tópico no Discourse for público, você pode me enviar um link para ele por mensagem privada?

Você tem a opção “Publicar como Tópicos Não Listados” do WP Discourse ativada? A diferença entre posts_count e filtered_posts_count nos metadados de discourse_comments_raw sugere que há duas pequenas postagens de ação no tópico. Existe um problema na função de atualização do webhook do WP Discourse quando há uma discrepância entre posts_count e filtered_posts_count. Isso é algo que vou resolver, mas não acho que esteja relacionado ao problema que você tem com uma postagem que não está recebendo comentários.

Quanto ao problema com a postagem que não está recebendo comentários, você quer dizer que o link para o tópico no Discourse não está sendo exibido, ou o problema é que o link está exibindo “iniciar a discussão” em vez de “participar da discussão”?

Isso.

Faz sentido se a contagem de comentários for zero. Eu não me preocuparia com isso. Foi apenas o que chamou minha atenção e me fez atualizar a página e notar que a contagem voltava a zero.

Ah, e para responder à sua pergunta…

Não.

Qual é o valor correto do campo “wpdc_sync_post_comments”?

Ainda estou com dificuldade com esse problema.

Acabei de acessar um tópico que tinha apenas uma postagem. A contagem de comentários no front-end do WP deveria ser “1”, mas mostrou 0. O campo wpdc_sync_post_comments estava com o valor “0”. Estou assumindo que seja uma flag Verdadeiro/Falso e que deveria estar definido como 1, então alterei e salvei a postagem. Ao atualizar o front-end do WP, não houve nenhuma mudança. Então, deixei uma nova postagem no tópico do Discourse e atualizei imediatamente a página do WP. A contagem de comentários pulou corretamente para “2”. Assim que atualizei a página novamente, ela caiu para “0”! Na tela de edição, descobri que wpdc_sync_post_comments havia sido redefinido para 0 e

discourse_comments_count == 0
discourse_comments_raw ===
{"id":1451,"posts_count":3,"filtered_posts_count":1,"posts":[],"participants":[ (cortado)

Outra postagem tem o seguinte:
discourse_comments_count == 3
discourse_comments_raw ===
{"id":1447,"posts_count":17,"filtered_posts_count":4,"posts":[],"participants": (cortado)

Obrigado pelos detalhes!

Quando o campo está definido como 1, os comentários serão sincronizados na próxima vez que a página for carregada. Quando os comentários forem sincronizados, o valor de wpdc_sync_post_comments será redefinido para 0.

Analisando os metadados que você compartilhou, parece que o plugin está subtraindo 1 do número de comentários indevidamente. Tenho viajado nos últimos dias. Vou analisar isso com mais atenção quando retornar ao trabalho amanhã.