Migrando de wp-discourse-embed para WP Discourse – posts antigos não aparecem

Por quase cinco anos, meu blog funcionou com o wp-discourse-embed do @techAPJ. Aqui está um exemplo de uma postagem
Soya Chunks Masala Dry Recipe | A Little Bit of Spice e a postagem correspondente no fórum: Soya Chunks Masala Dry - blog - comments
Consegui migrar e configurar o WP Discourse do @angus:

Mas agora, as postagens antigas do fórum não aparecem como comentários nas postagens do blog. A postagem do blog acima é um exemplo.
Estou imaginando que precisa haver algum mapeamento.
Como posso integrar isso?
Veja como meu log se parece

E o mais recente:

[2024-04-03 01:42:27] webhook_topic.ERROR: update_topic_content.webhook_verification_error [“message”,“Discourse Webhook Request Error: signatures did not match.”]

Logs Brutos aqui.

1 curtida

Olá,

Sobre:

Este erro significa que o valor da opção Webhook Secret Key no WP-Discourse não corresponde à senha definida no seu webhook do Discourse. Você pode verificar isso?

@simon me corrigirá se eu estiver errado, mas sim, uma postagem do WP precisa ser sincronizada com um tópico do Discourse. Para tópicos existentes, você deve ter a opção de vincular a um tópico existente do Discourse:

.
Uma vez sincronizado, os comentários devem ser recuperados.

Não tenho certeza se existe uma maneira melhor; espero que alguém possa fornecer mais informações.

4 curtidas

Você está correto sobre ambas as questões.

@Jane_Jojo, tente vincular um tópico existente do Discourse ao seu post correspondente no WordPress usando o método que @Arkshine demonstrou. Observe que a interface do usuário é ligeiramente diferente, dependendo se você está usando o editor Clássico do WordPress ou o novo Editor de Blocos.

Se vincular um tópico do Discourse a um post do WordPress funcionar, a próxima coisa a descobrir será como vincular todos os seus tópicos e posts existentes. Quantos posts antigos você tem? Se forem muitos posts para vincular manualmente ao Discourse, pode haver uma maneira de automatizar o processo.

2 curtidas

Obrigado.

Então eu fiz isso.

e recebo um 200 quando faço um ping. Então isso está claro.

Então eu faço isso:


Mas a postagem não reflete isso

Estou perdendo alguma coisa? Os logs não parecem ter nenhuma atualização.

Atualização:
Quando eu faço ping do webhook do discourse

Eu recebo isso no lado do log

\u003e[2024-04-03 21:38:14] webhook_topic.ERROR: update_topic_content.response_body_error

Seu uso do WordPress utiliza um plugin de cache?

Você pode precisar habilitar esta configuração:

Além disso, se ainda não estiver, habilitar a depuração em comentários pode ajudar:

image

A mensagem de erro que você está vendo será gerada se você “pingar” o webhook. No lado do WordPress, o código espera que haja um objeto post no webhook que é enviado pelo Discourse. O post não estará no payload se você apenas clicar no botão “ping”. Tente deixar um comentário em um tópico do Discourse que esteja vinculado ao Discourse e veja se isso ainda gera um erro.

Para que os comentários do Discourse apareçam em seu site WordPress:

  • certifique-se de que os comentários estão habilitados no WordPress para as postagens que você está publicando no Discourse
  • certifique-se de que a opção “Habilitar Comentários do Discourse” esteja habilitada:

Se você não habilitou comentários em seu site WordPress anteriormente, talvez não queira habilitá-los agora para postagens que ainda não estão conectadas ao Discourse. Para evitar que o formulário de comentários do WordPress seja exibido para essas postagens, você pode habilitar os comentários em todo o site e, em seguida, selecionar a configuração “Remover Modelo de Comentários do WordPress” na página Opções de Comentários do WP Discourse:

Informe-nos se você ainda estiver enfrentando problemas.

1 curtida

Ambos ativados. Sem sucesso.


Página atualizada e os logs não estão mostrando nada

Quando eu faço um ver código-fonte da página, eu vejo um monte de referências ao discourse no html. Então está tentando algo…

Estas são as configurações da minha seção de comentários há muito tempo.

Você pode verificar se os comentários estão habilitados para uma postagem que você vinculou ao Discourse? Às vezes, a opção “Discussão” não é exibida na página de edição. Talvez você precise selecioná-la no menu “Opções de Tela” para vê-la:

Sim, isso foi habilitado :frowning:

Hmm, não estou vendo nada na página que indique que o modelo de comentário está sendo carregado. A referência a discourse-embed-js na sua captura de tela não é do plugin WP Discourse. Acho que está relacionado ao script que foi carregado pelo plugin wp-discourse-embed. Na verdade, ele está gerando um erro no seu site:

Falha ao carregar recurso: o servidor respondeu com um status de 404 () discourse-embed.js

Há também um <div id="discourse-comments"></div> na página que é do plugin wp-discourse-embed, não do plugin WP Discourse.

Eu não ativaria a configuração “Carregar comentários com Ajax” do WP Discourse até que você confirme que há um problema com comentários em cache no site. Mesmo que fosse o caso, ele deveria ser capaz de exibir o modelo de comentário.

Existem plugins instalados no seu site relacionados a comentários? Estou imaginando se um plugin, ou o tema do site está impedindo que o modelo de comentário do WordPress seja carregado. O plugin WP Discourse depende desse modelo ser carregado. Existem algumas soluções alternativas para isso, mas todas são bastante técnicas.

Tenho certeza de que será possível resolver as coisas :slight_smile:

1 curtida

Estava revisando o histórico do código do meu tema e percebi que, há algum tempo, eu havia alterado todo o código de comentários do WP para comentários do Discourse.

Suspeito que o legado seja necessário, certo?

Estou me baseando na memória, mas não acho que o arquivo comments.php editado seja a causa do problema. O que deveria estar acontecendo é que, em vez do arquivo comments.php do seu tema ser carregado, o plugin WP Discourse deveria carregar sua própria seção de comentários quando esta função é chamada do seu tema: comments_template().

Dê uma olhada no arquivo single.php do seu tema, ou em qualquer arquivo usado para exibir uma postagem que você vinculou ao Discourse. Veja se o arquivo contém uma chamada para comments_template(). Parecerá algo assim:

if ( comments_open() || get_comments_number() ) :
	comments_template();
endif;

É a chamada para coments_template() que deve acionar o carregamento dos comentários do WP Discourse.

Posso estar errado sobre isso. Posso dar uma olhada mais de perto se isso não ajudar a resolver as coisas.

Consegui resolver o problema. Os comentários estavam desativados no nível do tema. Habilitá-los corrigiu o problema.

Obrigado pelas respostas detalhadas.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.