Uma ideia para comentários mais econômicos?

Atualmente, a forma como o link entre WordPress e Discourse funciona é que cada artigo é automaticamente transferido para o Discourse como oculto. Assim, mesmo aqueles onde nenhuma discussão está ocorrendo.

O que consome muitos recursos, pois o WordPress cria muitos tópicos “vazios”.

Alguém consegue pensar em uma solução para que apenas os artigos onde a discussão começou sejam transferidos do WP para o Discourse?

Olá @Petr_Mišák,

Para fazer isso, você precisaria ter comentários criados no WordPress importados como posts no Discourse. Isso não é possível usando o plugin WP Discourse e é improvável que seja suportado no futuro próximo. Para algumas reflexões mais amplas sobre isso, veja

Dito isso, ocorre-me que, uma vez que adicionarmos a capacidade para os atores de categoria do Discourse seguirem outros atores ActivityPub ao plugin ActivityPub (no qual estou atualmente a trabalhar), você poderia talvez configurar o plugin ActivityPub do WordPress de alguma forma para conseguir isso. Embora isso seja bastante especulativo.

Eu também gostaria de entender um pouco mais por que você vê isso como “intensivo em recursos”. Se você está publicando muitos artigos que não estão recebendo engajamento, talvez considere publicar um subconjunto de seus artigos em seu fórum que são mais propensos a obter engajamento? Inversamente, ter muitos tópicos incorporados sem respostas está prejudicando sua comunidade de alguma forma que você observou? Talvez haja algo que você possa fazer para resolver o problema subjacente, por assim dizer?

1 curtida

Para contexto, acredito que você tenha um site WordPress popular com muitos posts e recentemente criou um fórum Discourse e adicionou o plugin Discourse WordPress ao seu site.

Quantos posts existem no seu site WordPress? Posts mais antigos recebem comentários com muita frequência, ou as pessoas geralmente comentam apenas em posts mais recentes?

Em termos de soluções para o problema, você consideraria uma solução que exigisse a adição de código personalizado ao site WordPress, ou você está interessado apenas em maneiras de fazer isso que não exijam nenhum código personalizado?

Se os posts no site normalmente recebem comentários apenas por um curto período após serem publicados, a solução mais fácil possível seria apenas começar a publicar os posts mais recentes do site no Discourse.

A próxima coisa mais fácil a fazer seria adicionar um plugin ao seu site que modificasse o link “Iniciar Discussão” do WP Discourse, de modo que em vez de ser um link para o tópico do Discourse, fosse um link que acionasse o plugin WP Discourse para publicar o post no Discourse. A parte mais complicada da implementação disso seria descobrir como lidar com o caso do usuário que clica primeiro no link “Iniciar Discussão” - ele deve ser redirecionado automaticamente para o tópico assim que for publicado, o que ele verá enquanto o tópico está sendo publicado, etc.

Outra solução possível que não exigiria um plugin WordPress personalizado, mas exigiria algum tempo de desenvolvedor possivelmente caro, seria conseguir alguém para escrever um script de importação que importasse todos os posts, comentários e usuários existentes do seu site para o Discourse. Isso resolveria o problema de tópicos vazios. Se essa abordagem fosse tomada, valeria a pena considerar usar seu site WordPress como o provedor DiscourseConnect para o seu site Discourse. Isso facilitaria o acesso dos usuários importados ao Discourse.

2 curtidas

Tópicos vazios não consomem muitos recursos. Você está falando de dezenas ou centenas de milhares?

1 curtida

É possível que seja apenas um erro de tradução da minha parte, mas não tenho interesse em postar comentários do WordPress no Discourse, mas apenas no Discourse para discutir os tópicos dos artigos no WordPress.

Para fazer isso, preciso que o plugin do WordPress insira um tópico oculto no Discourse para cada artigo publicado após sua publicação.

Isso me incomoda terrivelmente que o link entre o artigo do WordPress e os comentários no Discourse seja criado no momento em que o artigo é publicado, e não quando alguém demonstra interesse em discutir o tópico.

Considerando que apenas 10% de todos os artigos têm pessoas comentando, mas o plugin do WordPress cria um link no Discourse para cada artigo publicado. Assim, 90% dos links criados dessa forma permanecem ocultos e apenas consomem recursos desnecessariamente.

Publicamos cerca de 13 artigos todos os dias. Então, 13 * 365 = 4.745 artigos por ano. E desses, 4.270 serão configurados como tópicos ocultos no sistema Discourse e nunca terão um comentário adicionado a eles. Isso são 42.700 tópicos de lixo em 10 anos.

A solução seria se o tópico oculto no Discourse não fosse criado quando o artigo é publicado no WordPress, mas o tópico viesse apenas quando alguém no WordPress, sob o artigo, demonstrasse interesse em comentá-lo.

Assim, não haveria necessidade de criar threads ocultas e não utilizadas no Discourse.

É exatamente como você diz, temos um site WordPress muito visitado, mas estamos movendo contas de usuário, logins e comentários de artigos completamente para o Discourse. O WordPress se tornará apenas um “Cliente DiscourseConnect”.

Publicamos cerca de 13 artigos por dia :slight_smile:

As pessoas geralmente comentam em artigos novos, mas não é incomum que uma discussão se desenvolva em um artigo mais antigo. Tentamos atualizar artigos várias vezes ao longo do tempo após a publicação. E novas informações adicionadas a um artigo podem reacender a discussão.

Estamos felizes em adicionar um trecho de código ao WordPress.

Usando o plugin WordPress atual para Discourse, planejamos adicionar apenas artigos novos ao Discourse que foram publicados desde 11/1/2023, mas isso criará milhares de tópicos não utilizados no Discourse. Além disso, se alguém quiser comentar em um artigo de 2015, não terá como fazê-lo, pois o tópico não existirá no Discourse.

Seria ótimo se o tópico fosse criado apenas quando o usuário clicasse em “iniciar uma discussão sob o artigo”.

Como imagino aproximadamente todo o processo? Darei um exemplo ilustrativo, embora fictício.

  • No WordPress, temos um rascunho de artigo, por exemplo, www.SvetAndroida.cz/android-telefony-2023
  • publicaremos o artigo
  • ainda nada é transferido para o Discourse

Então, alguém clica no botão “Iniciar uma discussão” sob o artigo do WordPress

  • naquele momento, o WordPress chama o Discourse para criar um tópico com o endereço komunita.SvetAndroida.cz/android-telefony-2023
  • e após ser criado, redireciona o usuário para o Discourse para postar o primeiro comentário

Se alguém no mesmo artigo do WordPress quiser “adicionar um comentário” (outro comentário)

  • eles não chamarão mais o Discourse e criarão um tópico
  • mas o usuário será levado diretamente para o Discourse quando o botão for clicado
  • alternativamente, o botão “adicionar comentário” não precisa mais ser tratado por JavaScript, mas como o tópico já existe, o botão poderia ser apenas um link HTML, o que seria melhor do ponto de vista de SEO

Usar JavaScript criaria um novo tópico no Discourse apenas se alguém clicasse em “Iniciar Discussão” e quisesse adicionar o primeiro comentário.

Provavelmente podemos fazer toda a solução sozinhos, mas atualmente temos uma escassez de programadores WordPress. Além disso, seria ótimo se essa funcionalidade fosse incluída diretamente no plugin oficial do Discourse.

2 curtidas

No nosso caso, seriam cerca de 50.000 tópicos em 10 anos

Não é um grande problema, mas você poderia excluir os com alguns anos uma vez por ano.

Limpar seria sensato, mas tentamos atualizar artigos antigos e ativar a discussão algum tempo após a publicação. Portanto, excluir não é uma solução ideal em nosso caso. …

Tudo isso faz sentido, especialmente para lidar com artigos já publicados. Minha única preocupação é que, ao depender de código personalizado, você adicionará alguma complexidade à sua integração WordPress/Discourse. Acho que tudo ficará bem, no entanto. Certifique-se de que seus desenvolvedores usem os ganchos de ação e filtro do plugin WP Discourse e não editem o código principal do plugin. Eles precisarão descobrir como chamar o método público sync_to_discourse quando o link “iniciar discussão” for clicado: wp-discourse/lib/sso-client/sso-client-base.php at main · discourse/wp-discourse · GitHub. Ao publicar por meio desse método, todos os metadados apropriados serão adicionados à postagem do WordPress.

Isso é ótimo! Pode valer a pena dar uma olhada neste site Discourse: boing - Boing Boing BBS. Eles usam o plugin WordPress para publicar um número semelhante de artigos no Discourse. No caso deles, eles publicam automaticamente todos os novos artigos no Discourse. Eles não publicaram artigos no Discourse que foram criados no WordPress antes de configurarem um site Discourse.

2 curtidas

Existe algum lugar adequado neste fórum onde eu possa conseguir um desenvolvedor para modificar o plugin do WordPress para Discourse, como descrito acima?

1 curtida

Obrigado, você foi muito rápido. Eu estava procurando originalmente nas categorias, mas não consegui encontrar lá. O que me surpreendeu. Mas a busca ajudou.

Obrigado pela sua resposta detalhada, Petr, mas estou um pouco confuso.

Como alguém expressaria interesse em discutir um artigo se você não quer comentários do WordPress e ainda não há um tópico para isso no Discourse?

*editar Ah, entendi que você delineou uma UX

Sim, isso é bastante factível.

Pensando nisso agora, acho que talvez seja uma pequena falha no plugin que não tenhamos uma maneira mais fácil de fazer isso. Acho que faz sentido adicionar uma função utilitária e um shortcode e bloco que se conectam a ela. Investigarei isso para a versão após a atual.

4 curtidas

Ótima ideia adicionar suporte ao plugin oficial do WordPress para o Discourse. Existe alguma ideia aproximada de em qual versão do plugin e quanto tempo levará para ter esse novo recurso?

Vou começar a trabalhar nisso na próxima semana para ser adicionado em 2.5.1 (o lançamento depois do próximo). @Petr_Mišák Você poderá usar isso para atingir seu objetivo.

3 curtidas

Ótimo, estou ansioso por isso. Já temos o Discourse implantado no site principal https://www.svetandroida.cz/