Discourse não conecta automaticamente os comentários abaixo dos artigos

Olá!
Tenho o problema de que o Discourse não está mais exibindo os comentários sob meus artigos. Quando meu artigo é publicado, ele aparece no fórum do Discourse do nosso blog, mas preciso vinculá-lo manualmente no artigo do WordPress depois. Então, os comentários aparecem. Mas essa etapa não era necessária antes.

Eu já escrevi sobre isso aqui: 422 Unprocessable Content response when using ActivityPub with WP Discourse - #5 by Miasanrot

Infelizmente, a solução lá não foi a minha solução e parece ser muito individual. Então, abri um novo tópico. Estas são as três coisas que me pediram para publicar:

  1. Logs do WP Discourse, incluindo o arquivo meta.
  2. Logs do Discourse, em particular o log de erros.
  3. Uma lista de plugins que você está usando no Discourse.

Arquivos de log do WP Discourse:
Este é de hoje:

[2024-03-14 06:02:59] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13514,"http_code":403}
[2024-03-14 07:14:26] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13651,"http_code":403}
[2024-03-14 08:22:19] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13815,"http_code":403}
[2024-03-14 08:48:21] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13638,"http_code":403}
[2024-03-14 09:37:36] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13759,"http_code":403}
[2024-03-14 10:55:34] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13603,"http_code":403}
[2024-03-14 11:25:23] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13603,"http_code":403}
[2024-03-14 12:36:28] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13944,"http_code":403}
[2024-03-14 16:03:01] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13977,"http_code":403}

**Aqui está o que está incluído no arquivo meta:**

### Servidor ###

WordPress - 6.4.3
PHP - 8.0.26
MySQL - 8.0.30

### Plugins Ativos ###

Admin Columns for ACF Fields - 0.3.1
Akismet Anti-spam: Spam Protection - 5.3.1
Borlabs Cookie - Cookie Opt-in - 2.2.67
Contact Form 7 - 5.8.6
Genesis Blocks - 3.1.1
LightStart - Maintenance Mode, Coming Soon and Landing Page Builder - 2.6.9
Podigee Wordpress Quick Publish – now with Gutenberg support! - 1.3.5
Proxy Real IP - 1.1
Shariff Wrapper - 4.6.9
TablePress - 2.2.5
TablePress Extension: Responsive Tables - 1.1
Theme Test Drive - 2.9.1
User Role Editor - 4.64.1
WP-Discourse - 2.5.1
WP Import Export - 3.9.26

### Configurações do WP Discourse (Segredos Excluídos) ###

display-subcategories - 0
allow-tags - 0
max-tags - 5
publish-as-unlisted - 0
full-post-content - 0
custom-excerpt-length - 50
add-featured-link - 0
auto-publish - 1
force-publish - 0
force-publish-max-age - 5
publish-failure-notice - 1
auto-track - 1
allowed_post_types - post
exclude_tags -
hide-discourse-name-field - 0
discourse-username-editable - 1
direct-db-publication-flags - 0
verbose-publication-logs - 0
enable-discourse-comments - 1
comment-type - display-comments
ajax-load - 1
load-comment-css - 1
discourse-new-tab - 1
hide-wordpress-comments - 1
show-existing-comments - 1
max-comments - 50
min-replies - 1
min-score - 0
min-trust-level - 0
bypass-trust-level-score - 50
only-show-moderator-liked - 0
custom-datetime-format -
cache-html - 1
clear-cached-comment-html - 0
verbose-comment-logs - 0
use-discourse-webhook - 1
webhook-match-old-topics - 0
use-discourse-user-webhook - 0
webhook-match-user-email - 0
enable-sso - 0
auto-create-sso-user - 0
real-name-as-discourse-name - 0
force-avatar-update - 0
redirect-without-login - 0
sso-client-enabled - 0
sso-client-login-form-change - 0
sso-client-sync-by-email - 0
sso-client-sync-logout - 0
logs-enabled - 1

Não sei como baixar ou copiar algo do protocolo de erro do Discourse, mas esta é uma captura de tela de hoje. 16h06 é quase a hora em que nosso último artigo foi publicado (16h11)

Lista de plugins no Discourse:

Chat (desativado), Data Explorer, Footnote, Spoiler Alert

Se eu deveria adicionar algo, me avise. Agradeço antecipadamente pela sua ajuda.

Olá @Miasanrot, obrigado por todos esses detalhes, são muito apreciados!

A primeira coisa a investigar aqui é o erro de sincronização de comentários 403 nos logs, que parece relacionado ao seu problema de não ver comentários. Um erro 403 significa que o WP Discourse não consegue acessar o Discourse, provavelmente devido a uma falha de autorização.

  1. Na aba “Connection” no painel de administração do WP Discourse, você vê uma mensagem dizendo “You are connected to Discourse!”?

  2. Como você está usando o plugin do WordPress “Proxy Real IP - 1.1”, estou curioso sobre o ambiente de rede do seu WordPress e Discourse. Qual o papel desse plugin?

Obrigado pela resposta rápida! Agradeço também.

Sim, mostra que estou conectado. E também parece criar algo quando publico um artigo. No WP, às vezes vejo o erro de que o artigo já está incorporado (acho que o mesmo problema que o usuário teve no tópico que linkei). Então, também acho que deve haver uma conexão (e mostra no painel de administração, como escrevi).

O segundo é um pouco mais difícil. Assumi este blog em janeiro e, portanto, não configurei tudo por conta própria. Mas perguntei ao administrador anterior sobre esse plugin e voltarei assim que tiver uma resposta.

Edição: O plugin pode ser desativado, ele disse. Então, eu poderia tentar isso no próximo passo?

Infelizmente, nenhuma solução até o momento. Desativar o plugin mencionado acima não ajudou.

Desculpe Justin, perdi o controle disso. O problema é muito provavelmente algo específico da sua configuração do Wordpress.

(a ênfase é minha)

Quando eles pararam de funcionar? Você consegue identificar algo que mudou no Wordpress quando os comentários pararam de funcionar? Você

  1. Atualizou o Wordpress?
  2. Atualizou o plugin?
  3. Mudou (ou atualizou) seu tema?

Olá Justin, estou apenas verificando aqui. Como você está lidando com este problema?

Obrigado por verificar novamente!

Difícil de responder, mas acho que a atualização do WordPress (e do php, ambos no mesmo dia) pode ter sido o ponto em que tudo aconteceu. Pelo menos vi esse problema pela primeira vez depois disso. Estou executando o penúltimo wordpress (acho que nos últimos dias foi publicado o 6.5, ainda não instalado) e o php 7.4, se estou informado corretamente.

O plugin Discourse está rodando na versão 2.5.1.

Você por acaso sabe de qual versão do WordPress você atualizou? Quanto tempo se passou entre as atualizações? Você também atualizou seu tema ao mesmo tempo? Seu tema é um “tema de blocos”?

Espero poder responder sem mal-entendidos ou informações incorretas. Assumi este blog em janeiro e o WP era uma versão bem antiga. Acho que 5.x, não consigo dizer o número exato. Definitivamente foi um longo tempo entre as duas atualizações. Nosso tema ainda é o mesmo, é um tema individual que foi projetado e codificado para nossa página. Eu sabia que isso poderia causar problemas quando atualizasse a página, especialmente porque não tenho habilidades de codificação, mas parecia estar tudo bem até que percebi essa coisa do discourse.

Desculpe se não consigo fornecer informações mais detalhadas sobre isso, farei o meu melhor :smiley:
Obrigado novamente pela sua paciência e ajuda.

Entendi. Essa é uma atualização significativa (ou seja, do WordPress 5.x para o 6.x). Seria possível testar isso com um tema padrão do WordPress (qualquer tema padrão do WordPress) e ver se você tem o mesmo problema? Sei que isso dá um pouco de trabalho, no entanto, esse é o culpado mais provável aqui (ou seja, seu tema). Você pode precisar mudar para um Bloco de Comentários

Isso deve ser possível. Publicarei um artigo ainda hoje e poderei mudar para um tema do WordPress pouco antes e ver se funciona.

Ah, e apenas uma adição @angus: O que exatamente significa tema de blocos? Eu tenho o editor de blocos no WP para coisas como páginas e artigos, mas se tema de blocos significa que posso apenas adicionar blocos para projetar a página como quero, então não é um tema de blocos. Apenas para esclarecer.

1 curtida

Então, mudei para o tema Twenty Twenty-Three do WordPress e publiquei meu artigo. Como sempre, ele criou um tópico no meu discourse, mas, como antes, ele não estava conectado à seção de comentários do blog e tive que fazer isso manualmente.

Entendi. Algo no seu site está impedindo o plugin de funcionar corretamente. Se não for o tema, o próximo passo são os outros plugins que você instalou.

Sem ter mais informações sobre o seu site, a única coisa que posso aconselhar é que você terá que tentar desativá-los um por um e ver se isso muda o comportamento. É possível que um deles não seja compatível com a versão atual do WordPress e/ou PHP 8.x (o plugin WP Discourse é com ambos).

Novamente, talvez não seja o que você queria ouvir, no entanto, com um sistema “pluggable” como o WordPress, essas coisas (ou seja, conflitos de plugins) são fontes possíveis de erro. Neste estágio, vale a pena tentar eliminar essa fonte.

1 curtida

É possível que o cache, em combinação com o tema, tenha algo a ver com isso? Não tenho ideia sobre essas coisas, mas às vezes pequenas coisas não aparecem na página e, depois de limpar o cache, funciona novamente. Por exemplo: Ontem, linkei um artigo manualmente e os comentários ainda não apareciam na página. Limpar o cache ajudou.

Hoje, publiquei um artigo e ele o vinculou automaticamente ao discourse, como deveria. Mas os comentários não apareceram. Então, novamente, limpei o cache e, em seguida, eles estavam lá. Não é fácil para mim entender isso, mas algo não está certo aí.

Sim, o cache pode estar desempenhando um papel no seu problema. Tente usar a configuração “Carregar comentários com Ajax” na aba “Comentários” das configurações do WP Discourse.

Qual solução de cache você está usando?

A Opção foi ativada.

Estou usando o WP Rocket para Caching, mas o instalei depois de ver alguns problemas. Esses problemas pareciam ter sido resolvidos. Mas não consigo dizer exatamente como o cache estava funcionando antes. Sei que havia cache, mas não sei a solução concreta. Quando assumi o blog, senti alguma lentidão no carregamento de imagens. Depois de usar o WP Rocket, parece estar melhor há um ou dois meses. (O problema dos comentários já existia antes de eu instalá-lo)

Mas em casos raros, temos o problema de algo ser exibido incorretamente na página. Na semana passada, os comentários estavam faltando após conectá-lo manualmente ao Discourse. Então, limpei o cache com o WP Rocket e funcionou novamente.

Parece que tenho o mesmo problema ou um semelhante com erros 422. Já conversei com @angus que configurarei um ambiente de teste (WP e Discourse) para testes, espero que neste fim de semana…

2 curtidas

O WP Rocket pode ser uma verdadeira dor de cabeça. Ele gera cópias estáticas do seu conteúdo, mas tenta deixar intocadas as partes que deveriam ser dinâmicas ou que deveriam ser estáticas por um tempo muito curto. Se você tiver sorte o suficiente para encontrar uma regra que desabilite o cache de forma confiável nos comentários, ele funciona — mas você começa a perder os benefícios que obteve.

Em termos de cache, o WordPress é… não exatamente um pesadelo, mas quase. Desisti do WP Rocket porque ele exigia muita atenção e tempo meu, e funciona melhor com TTLs bem curtos. Obtive melhores resultados usando outras ferramentas (e então é preciso ser realista: há algum ponto sólido em tentar economizar um segundo se isso exige várias horas de trabalho meu e quase toda semana; desabilitar plugins desnecessários e escolher o tema certo é uma opção melhor).

A maioria dos sites, na verdade, não precisa de comentários porque eles os recebem com bastante raridade e, nesse caso, o Discourse como seção de comentários serve a outros propósitos. Mas, é claro, depende.

Para mim, a conexão com o Discourse funciona como um anúncio. Mas a maioria dos meus visitantes usa celulares e quase nunca rola a página o suficiente — um ponto de interrogação totalmente igual ao das barras laterais.

1 curtida

E quais ferramentas? Novamente: não estou muito acostumado com todas essas coisas técnicas, é por isso que estou aqui e tentando ver se há alguma ajuda para o problema. O problema existia antes de eu instalar o WP Rocket e ele resolveu alguns outros tipos de problemas, mas se esta ferramenta for de alguma forma problemática, estou aberto a outras soluções.

Temos até 100 ou 200 comentários em nossos artigos (no Discourse, para ser preciso), então é justo dizer que queremos que eles sejam integrados, mesmo que um usuário que queira apenas ler o artigo não role até lá.

Fora do escopo neste fórum, porque se trata de otimizar o WordPress. Tente o Facebook, algo como acelerar o WordPress.

Mas você pode se interessar por plugins como Asset CleanUp, EWWW Image Optimizer ou até Redis, se você tiver muitos usuários simultâneos. Você deve usar pelo menos ferramentas da Nginx para eliminar o máximo de tráfego de bots possível. Mas nenhuma dessas ajuda muito se os gargalos reais forem o tema e toneladas de plugins diferentes. E a má notícia é que você deve limpar o próprio banco de dados de vez em quando.

Mas se o WP Rocket ajudar, é bom. Mas não use tempos de cache muito longos. E você deve colocar o Discourse na lista negra do cache.