Pergunta rápida sobre link programático para tópico existente

Estou usando formulários no frontend para criar posts no WordPress que precisam ser vinculados a tópicos existentes no Discourse.

Meu plano é inserir a URL do tópico existente em um campo ACF ao adicionar ou editar o post no WP.

Em seguida, eu usaria

add_action('acf/save_post', 'my_acf_save_post', 25);

Dentro da função my_acf_save_post, eu executaria

protected function link_to_discourse_topic( $post_id, $topic_url )

Visto aqui.

Estou no caminho certo?

1 curtida

Sim, você está no caminho certo. De forma geral, o que você precisa fazer é

  1. Recuperar os detalhes do tópico no Discourse (a menos que você já os tenha)
  2. Salvar os detalhes relevantes nos campos de meta do post corretos

São esses campos de meta do post que você vê naquela função que você vinculou que criam a conexão.

Também adicionei isso à minha agenda de desenvolvimento do WP Discourse: tornar isso mais fácil, ou seja, usando uma única função utilitária pública para atingir esse objetivo. Já agendei isso para junho.

Além disso, dê uma olhada nas funções utilitárias existentes em lib/plugin_utilities.php e lib/utilities.php. E no método link_topic correspondente em admin/discourse-sidebar/discourse-sidebar.php.

Me avise como você se sai.

2 curtidas

@Angus, obrigado pela sua resposta. Estou no jardim de infância do PHP, então, se você pretende trabalhar nisso, vou aguardar.

Além disso, estou recebendo um erro repetível com o plugin do WP. Não sei se você prefere um post separado ou uma issue no GitHub, mas aqui está o que está acontecendo:

Quando abro um post do WP vinculado a um tópico do fórum, o link não aparece no bloco do Discourse. Parece que não há nenhum link.

Condições:
Isso ocorre tanto se o link foi criado ao publicar um “Novo Tópico” quanto ao usar “Vincular a um Tópico Existente”.

Meus posts do WP são CPTs.

Meu sistema de comentários está configurado para “Exibir um link para os comentários”.

Além disso, não há nada especial na minha instalação.

Confirmação:
Posso confirmar que os links que não aparecem no bloco do Discourse existem, pois consigo vê-los nas minhas colunas de administração e porque consigo clicar no link no front-end e acessar o post do fórum.

Fico à disposição para ajudar com mais informações ou testes.

Abraços, Richard

1 curtida

Você adicionou seu tipo de postagem personalizado na configuração de publicação “Tipos de Postagem para Publicar”? Veja mais

1 curtida

Sim. Deveria ter mencionado: tudo funciona no início. Posso publicar em um novo tópico ou vincular a um tópico existente, e os links funcionam em ambas as direções… exceto:

Se eu editar novamente um post no WordPress depois, o bloco do Discourse parece que não há nenhum link, mesmo que o link no frontend do WordPress ainda leve ao tópico correto do fórum, e o link no tópico do fórum ainda leve ao post correto do WordPress.

Então, o problema existe apenas no bloco Discourse do WordPress ao reeditar um post.

Me avise se precisar de mais alguma coisa.

1 curtida

Obrigado, mais algumas perguntas

  1. Você vê algum erro no console do inspetor web do seu navegador?

  2. Se você fizer uma atualização completa da página enquanto estiver visualizando o editor, o que acontece?

Parece que há um problema de JavaScript. Isso pode ser causado por várias coisas, incluindo outros plugins ou uma extensão do navegador. Precisamos reduzir um pouco mais as possibilidades, se possível.

1 curtida

Console: Nó não encontrado na página atual

Primeiro, o bloco do Discourse mostra as seções Opções de Publicação / Fixar Tópico e Publicar no Discourse. Em seguida, a seção Categoria aparece. Não mostra os links existentes.

Desativei todos os plugins, exceto WP-Discourse, CPT e ACF, e depois testei com os navegadores Brave e Edge, ambos sem extensões e com os escudos desativados. Ainda assim, não consigo ver os links existentes no bloco do Discourse.

Estou fazendo um teste entre postagens normais e postagens de CPT. Vou te informar os resultados.

1 curtida

Não sei ao certo por que, mas meus links agora estão aparecendo no bloco do Discourse. Vou retornar com informações se encontrar um padrão para esse problema. Obrigado.

2 curtidas