¿Una idea para comentarios más económicos?

Actualmente, la forma en que funciona el enlace de WordPress y Discourse es que cada artículo se transfiere automáticamente a Discourse como oculto. Por lo tanto, incluso aquellos en los que no hay ninguna discusión en curso.

Lo cual consume muchos recursos, ya que WordPress crea muchos temas “vacíos”.

¿Se le ocurre a alguien una solución para que solo los artículos donde se ha iniciado una discusión se transfieran de WP a Discourse?

Hola @Petr_Mišák,

Para hacer eso, necesitarías que los comentarios creados en WordPress se importaran como publicaciones en Discourse. Eso no es posible usando el plugin WP Discourse y es poco probable que se admita en el futuro cercano. Para algunas ideas más generales sobre esto, consulta

Dicho esto, se me ocurre que una vez que agreguemos la capacidad para que los actores de categorías de Discourse sigan a otros actores de ActivityPub al plugin ActivityPub (en el que estoy trabajando actualmente), podrías configurar el plugin de ActivityPub de WordPress de alguna manera para lograr esto. Aunque esto es bastante especulativo.

También querría entender un poco más por qué ves esto como “consumidor de recursos”. Si estás publicando muchos artículos que no están recibiendo interacción, ¿quizás considera publicar un subconjunto de tus artículos en tu foro que tengan más probabilidades de recibir interacción? Por el contrario, ¿tener muchos temas incrustados sin respuestas está perjudicando a tu comunidad de alguna manera que hayas observado? ¿Hay quizás algo que puedas hacer para abordar el problema subyacente, por así decirlo?

1 me gusta

Como contexto, creo que tienes un sitio popular de WordPress con muchas publicaciones y recientemente has creado un foro de Discourse y has añadido el plugin de Discourse WordPress a tu sitio web.

¿Cuántas publicaciones hay en tu sitio de WordPress? ¿Las publicaciones antiguas reciben comentarios con mucha frecuencia o la gente suele comentar solo en las publicaciones más recientes?

En cuanto a las soluciones al problema, ¿considerarías una solución que requiriera añadir código personalizado al sitio de WordPress, o solo te interesan formas de hacerlo que no requieran código personalizado?

Si las publicaciones del sitio normalmente solo reciben comentarios durante un corto período de tiempo después de ser publicadas, la solución más sencilla posible sería simplemente empezar a publicar las publicaciones más recientes del sitio en Discourse.

Lo siguiente más fácil sería añadir un plugin a tu sitio que modificara el enlace “Iniciar discusión” de WP Discourse, de modo que en lugar de ser un enlace al tema de Discourse, fuera un enlace que activara el plugin de WP Discourse para publicar la entrada en Discourse. La parte más complicada de implementar esto sería averiguar cómo manejar el caso del usuario que hace clic por primera vez en el enlace “Iniciar discusión”: ¿debería ser redirigido automáticamente al tema una vez que se haya publicado, qué verá mientras se publica el tema, etc.?

Otra posible solución que no requeriría un plugin personalizado de WordPress, pero sí algo de tiempo de desarrollo posiblemente costoso, sería conseguir que alguien escribiera un script de importación que importara todas las publicaciones, comentarios y usuarios existentes de tu sitio a Discourse. Eso se encargaría del problema de los temas vacíos. Si se adoptara este enfoque, valdría la pena considerar el uso de tu sitio de WordPress como proveedor de DiscourseConnect para tu sitio de Discourse. Eso facilitaría el acceso de los usuarios importados a Discourse.

2 Me gusta

Los temas vacíos no consumen muchos recursos. ¿Está hablando de decenas o cientos de miles?

1 me gusta

Es posible que sea solo un error de traducción de mi parte, pero no me interesa publicar comentarios de WordPress en Discourse, sino solo en Discourse para discutir los temas de los artículos en WordPress.

Para ello, necesito que el plugin de WordPress inserte un tema oculto en Discourse por cada artículo publicado después de que se publique.

Me molesta enormemente que la vinculación entre el artículo de WordPress y los comentarios en Discourse se cree en el momento en que se publica el artículo, y no cuando alguien expresa interés en discutir el tema.

Considerando que solo el 10% de todos los artículos tienen comentarios, pero el plugin de WordPress crea un enlace en Discourse por cada artículo publicado. Por lo tanto, el 90% de los enlaces creados de esta manera permanecen ocultos y solo consumen recursos innecesariamente.

Publicamos aproximadamente 13 artículos al día. Entonces, 13 * 365 = 4,745 artículos por año. Y de estos, 4,270 se configurarán como temas ocultos en el sistema Discourse y nunca tendrán un comentario. Eso son 42,700 temas basura en 10 años.

La solución sería que el tema oculto en Discourse no se creara cuando el artículo se publica en WordPress, sino que el tema solo apareciera cuando alguien en WordPress, debajo del artículo, muestra interés en comentarlo.

Así no sería necesario crear hilos ocultos y sin usar en Discourse.

Es exactamente como dices, tenemos un sitio de WordPress muy visitado, pero estamos trasladando cuentas de usuario, inicios de sesión y comentarios de artículos completamente a Discourse. WordPress se convertirá solo en un “Cliente de DiscourseConnect”.

Publicamos alrededor de 13 artículos al día :slight_smile:

La gente suele comentar en artículos nuevos, pero no es raro que se desarrolle una discusión en un artículo antiguo. Intentamos actualizar los artículos una vez que se han publicado varias veces a lo largo del tiempo. Y la información recién agregada a un artículo puede reavivar la discusión.

Estamos contentos de agregar un fragmento de código a WordPress.

Usando el plugin actual de WordPress para Discourse, planeamos transferir solo los artículos nuevos a Discourse que se hayan publicado desde el 11/1/2023, pero esto creará miles de temas no utilizados en Discourse. Además, si alguien quisiera comentar un artículo de 2015, no tendría forma de hacerlo ya que el tema no existiría en Discourse.

Sería genial si el tema se creara solo cuando el usuario haga clic en “iniciar una discusión debajo del artículo”.

¿Cómo me imagino aproximadamente todo el proceso? Daré un ejemplo ilustrativo si fuera ficticio.

  • En WordPress tenemos un borrador de artículo, por ejemplo, www.SvetAndroida.cz/android-telefony-2023
  • publicaremos el artículo
  • todavía nada se transfiere a Discourse

Luego, alguien hace clic en el botón “Iniciar una discusión” debajo del artículo de WordPress.

  • en ese momento WordPress llama a Discourse para crear un tema con la dirección komunita.SvetAndroida.cz/android-telefony-2023
  • y después de que se crea, redirige al usuario a Discourse para publicar el primer comentario.

Si alguien en el mismo artículo de WordPress quiere “agregar un comentario” (otro comentario)

  • ya no llamarán a Discourse y crearán un tema
  • sino que el usuario será llevado directamente a Discourse cuando se haga clic en el botón
  • alternativamente, el botón “agregar comentario” ya no necesita ser manejado por JavaScript, sino que, dado que el tema ya existe, el botón podría ser simplemente un enlace HTML, lo que sería mejor desde una perspectiva de SEO.

Usar JavaScript solo crearía un nuevo tema en Discourse si alguien hiciera clic en “Iniciar discusión” y quisiera agregar el primer comentario.

Probablemente podamos hacer toda la solución nosotros mismos, pero actualmente tenemos escasez de programadores de WordPress. Además, sería genial si esta funcionalidad se incluyera directamente en el plugin oficial de Discourse.

2 Me gusta

En nuestro caso serían unas 50.000 temáticas en 10 años

No es gran cosa, pero podrías eliminar las de hace unos años una vez al año.

Limpiarlo tendría sentido, pero intentamos actualizar artículos antiguos y activar el debate después de un tiempo de su publicación. Por lo tanto, eliminar no es una solución ideal en nuestro caso. …

Todo esto tiene sentido, especialmente para tratar con artículos publicados anteriormente. Mi única preocupación es que al depender de código personalizado, añadirán cierta complejidad a su integración de WordPress/Discourse. Creo que debería estar bien, sin embargo. Asegúrate de que tus desarrolladores utilicen los ganchos de acción y filtro del plugin WP Discourse y no editen el código del plugin principal. Necesitarán averiguar cómo llamar al método público sync_to_discourse cuando se haga clic en el enlace “iniciar discusión”: wp-discourse/lib/sso-client/sso-client-base.php at main · discourse/wp-discourse · GitHub. Al publicar a través de ese método, todos los metadatos apropiados se agregarán a la publicación de WordPress.

¡Eso es genial! Podría valer la pena echar un vistazo a este sitio de Discourse: boing - Boing Boing BBS. Utilizan el plugin de WordPress para publicar un número similar de artículos en Discourse. En su caso, publican automáticamente todos los artículos nuevos en Discourse. No han publicado artículos en Discourse que se crearon en WordPress antes de configurar un sitio de Discourse.

2 Me gusta

¿Hay algún lugar adecuado en este foro donde pueda conseguir un desarrollador que modifique el plugin de WordPress para Discourse como se describe arriba?

1 me gusta

Gracias, fuiste muy rápido. Originalmente lo estaba buscando en las categorías pero no pude encontrarlo allí. Lo cual me sorprendió. Pero la búsqueda ayudó.

Gracias por tu detallada respuesta, Petr, sin embargo, estoy un poco confundido.

¿Cómo expresaría alguien interés en discutir un artículo si no quieres comentarios de WordPress y aún no hay un tema para ello en Discourse?

*edición Ah, veo que has presentado una experiencia de usuario.

Sí, eso es bastante factible.

Pensando en esto ahora, creo que quizás sea una pequeña laguna en el plugin que no tengamos una forma más fácil de hacer esto. Creo que tiene sentido agregar una función de utilidad y un shortcode y un bloque que se conecten a ella. Investigaré esto para la versión posterior a la actual.

4 Me gusta

Gran idea añadir soporte al plugin oficial de WordPress para Discourse. ¿Hay alguna idea aproximada de en qué versión del plugin y cuánto tiempo podría llevar obtener esta nueva función?

Voy a empezar a trabajar en esto la próxima semana para que se agregue en 2.5.1 (la versión posterior a la próxima). @Petr_Mišák Podrás usar esto para lograr tu objetivo.

3 Me gusta

Genial, estoy deseando que llegue. Ya tenemos Discourse desplegado en el sitio principal https://www.svetandroida.cz/