¿Cómo aprovechar mejor Discourse para una revista de WordPress más grande?

Hola. Hola,
Dirijo una revista en línea más grande centrada en la tecnología, https://www.svetandroida.cz/, y en el pasado hemos intentado ofrecer varias opciones comunitarias (notificaciones, reseñas de usuarios, karma, etc.) a nuestros usuarios. Pero WordPress no admite estas funciones de forma nativa, y las soluciones de terceros siempre acaban teniendo problemas después de un tiempo.

Por eso hemos decidido dejar WordPress exclusivamente para la función de revista, que simplemente mostrará contenido. Lo más rápido y limpio posible. Y trasladar completamente todo lo relacionado con la comunidad de usuarios a Discourse, que maneja este trabajo mucho mejor.

Esta configuración me parece absolutamente ideal. Pero llevamos unos 13 años gestionando la revista, y en ese tiempo hemos tenido cientos de miles de comentarios y decenas de miles de usuarios registrados. Me gustaría conocer tu opinión sobre cómo hacer que la integración de Discourse sea lo más elegante y, desde el punto de vista de los usuarios, lo más efectiva posible.

Hechos:

  • La revista en WordPress se ejecuta en https://www.svetandroida.cz/
  • Gestionamos la comunidad de Discourse aquí https://komunita.svetandroida.cz/
  • queremos usar Discourse para gestionar las cuentas de usuario, nos parece mejor
  • publicamos entre 5 y 15 artículos cada día
  • tenemos decenas de miles de artículos (¡y ya hemos borrado muchos!)
  • comentando activamente, hay de decenas a cientos de usuarios
  • Tenemos instalado el plugin de WordPress para Discourse y todo parece funcionar bien, lo único que aún no hemos configurado es el SSO
    • los artículos que publicamos en la revista de WordPress se publican automáticamente en Discourse como ocultos

¿Qué necesito abordar y cómo lo abordo? ¿Se te ocurre alguna mejor solución?

Inicio de sesión de usuario
Usando plugins de WordPress, configuraré el Cliente DiscourseConnect y espero que no falle ni bloquee el acceso a mis editores :). Espero que no. Es broma, pero es cierto que este es el único lugar que, incluso después de leer atentamente las discusiones, todavía no tengo 100% claro.

Espero que si un usuario quiere iniciar sesión en el sitio de la revista de WordPress (ya tienen una cuenta de WordPress), se cree automáticamente una cuenta para él también en Discourse.

Si por casualidad eso no sucede, probablemente esté bien que pida a esas pocas docenas de usuarios que olviden sus cuentas de usuario existentes de WordPress y creen nuevas en Discourse.

Comentarios sobre el tema de los artículos
Actualmente, no he encontrado una forma elegante de transferir los comentarios de nuestros usuarios que ya están publicados en WordPress a Discourse, recién lanzado. Si me equivoco, por favor, indícamelo.

Por lo tanto, los comentarios ya publicados permanecerán en WordPress y cualquier comentario nuevo se publicará en Discourse.

No transferiremos los comentarios publicados en Discourse de vuelta a los artículos de WordPress, sino que solo colocaremos un enlace debajo de cada artículo de WordPress que enlace a Discourse (para ese artículo de Discourse en particular).

De la forma en que lo tenemos actualmente, todos los artículos publicados se transfieren a Discourse como ocultos y solo se vuelven visibles cuando alguien les añade un nuevo comentario en Discourse. Esta solución no está mal, pero en nuestro caso significa que yo, como administrador, veré miles de hilos ocultos en Discourse :frowning: .

¿No hay alguna forma más elegante de resolver esto? Por ejemplo, que un artículo de WordPress no se transfiera a Discourse como oculto después de publicarlo, sino que se cree un hilo de Discourse solo cuando alguien haga clic en el enlace debajo del artículo de WordPress y añada un comentario?

De esa manera no habría miles de hilos invisibles en el foro.

Y si fuera absolutamente perfecto, entonces a través de un “enlace mágico” de WordPress, el hilo de Discourse solo se crearía temporalmente, y si por casualidad no se añadiera ningún comentario y el usuario cambiara de opinión/se fuera, el hilo se eliminaría después de un tiempo.

Gracias por leer hasta aquí (envío una imagen de IA como recompensa) y espero tus ideas y perspectivas.

2 Me gusta

La funcionalidad del cliente DiscourseConnect funciona de manera similar a como funcionan otras formas de inicio de sesión social. Por ejemplo, es similar a iniciar sesión en WordPress a través de Facebook, pero con tu sitio de Discourse como proveedor de autenticación en lugar de Facebook. Eso significa que antes de que los usuarios puedan iniciar sesión en tu sitio de WordPress con DiscourseConnect, necesitarán crear una cuenta en tu sitio de Discourse. Sin embargo, no crear una cuenta de Discourse no impedirá que ningún usuario inicie sesión en tu sitio de WordPress. Cuando el sitio de WordPress es el cliente DiscourseConnect, el inicio de sesión normal con nombre de usuario/contraseña en WordPress todavía está disponible.

Dado que tienes muchos usuarios acostumbrados a iniciar sesión en tu sitio de WordPress, podría valer la pena considerar usar tu sitio de WordPress como el proveedor de DiscourseConnect para tu sitio de Discourse. Si configuras las cosas de esa manera, todos tus usuarios existentes podrán iniciar sesión fácilmente en tu nuevo sitio de Discourse. Todo lo que tendrán que hacer es hacer clic en un enlace en tu sitio de WordPress. Los detalles sobre cómo construir un enlace para hacer eso están aquí: Crear un enlace de inicio de sesión de DiscourseConnect.

Parece que quieres trasladar completamente el aspecto social de tu sitio de WordPress a Discourse, por lo que posiblemente esa sería una razón para no usar tu sitio de WordPress como proveedor de DiscourseConnect. Mi preocupación es que exigir a los usuarios que creen nuevas cuentas en Discourse, en lugar de simplemente iniciar sesión en su cuenta de WordPress y hacer clic en un enlace para acceder al foro, podría disuadir a algunos usuarios de unirse al nuevo sitio.

Lo principal a tener en cuenta si usas WordPress como proveedor de DiscourseConnect es que, cuando las cosas se configuran de esa manera, se convierte en el único método de inicio de sesión para Discourse. Eso significa que no puedes tener algunos usuarios iniciando sesión en Discourse a través de WordPress y otros usuarios iniciando sesión en Discourse registrando cuentas con nombre de usuario/contraseña en el sitio de Discourse. Todos los usuarios tendrán que tener cuentas en WordPress para acceder al sitio de Discourse.

Avísame si la distinción entre usar WordPress como cliente de DiscourseConnect y proveedor de DiscourseConnect no te queda clara.

Es técnicamente posible, pero no creo que exista un método bien probado para hacerlo. Puede que haya otros miembros de esta comunidad que tengan ideas sobre cómo abordarlo.

Podría ser posible. Mi impresión es que podría generar problemas.

En tu sitio de Discourse, puedes filtrar los temas no listados agregando la siguiente cadena de consulta a una URL: ?status=listed. Por ejemplo, \u003chttps://meta.discourse.org/latest?status=listed\u003e. Existe un componente de tema existente que se puede usar para alternar entre ver temas “abiertos” y “cerrados”: Topic Status Filter. Si aún no existe, sería bastante fácil para alguien agregar estados “listado” y “no listado” a ese filtro. Pero supongo que para ese caso solo querrías que el filtro fuera visible para el personal.

Esto podría lograrse desde WordPress con una solicitud de API que fuera manejada por un trabajo cron.

6 Me gusta

Gracias por su tiempo y respuesta.
Sobre DiscourseConnect, ya me ha quedado claro, gracias por la detallada explicación. Así que configuremos DiscourseConnect en WordPress como cliente.

Los comentarios antiguos probablemente no añaden suficiente valor como para que merezca la pena el esfuerzo de transferirlos de WordPress a Discourse.

Pero esas discusiones basadas en artículos publicados todavía me rondan la cabeza :). El filtro es, en efecto, una solución para que el administrador no vea los hilos “ocultos”, pero de alguna manera no puedo renunciar a la idea de que pueda haber otra manera.
Mencionó que podría generar problemas, ¿sería posible enumerar algunos estados problemáticos que le preocupan, por favor?
Con la API probablemente sea una solución, pero como no somos programadores, no me imagino bien cómo funcionaría.

La forma en que imagino que funcionaría es que cuando un usuario hace clic en un enlace a un tema de Discourse (aún no publicado), se activaría una función en el backend de WordPress para publicar la entrada en Discourse. Activar la publicación de la entrada en Discourse cuando un usuario hace clic en un enlace es factible.

Los problemas que imagino:

  • ¿A qué apunta el enlace si la entrada aún no se ha publicado? No conocemos la URL del tema en Discourse hasta después de que se haya publicado. Sería necesario desarrollar algo para que, cuando el usuario haga clic en el enlace, el tema se publique en segundo plano y, basándose en la respuesta recibida de Discourse, el usuario sea redirigido al tema de Discourse.

  • No estoy seguro de qué sucedería si tu sitio tuviera mucho tráfico y muchos usuarios hicieran clic en enlaces que activaran la publicación de temas de Discourse al mismo tiempo. Probablemente estaría bien, pero se siente como un riesgo.

Editar: una forma de abordar el primer problema sería simplemente informar al usuario de lo que está sucediendo y mostrar un mensaje de “por favor, espere mientras publicamos el tema”. Una vez publicado el tema, se podría generar un enlace al tema y se podría pedir al usuario que haga clic en él. El proceso podría llevar unos segundos.

2 Me gusta

Entonces, ¿todo podría adaptarse a un pequeño javascript que colocaría un enlace normal para participar en la discusión debajo del artículo en un sitio de WordPress? Primero, el javascript llamaría a una función (crear hilo en Discourse, que el plugin de WP ya hace) y le mostraría al usuario que se está creando un hilo, y cuando el javascript obtenga la información de Discourse de que el hilo se ha creado, redirigiría al usuario al hilo de comentarios en Discourse.

¿Es eso correcto, o lo estoy imaginando demasiado simple? :slight_smile:

Sería más sencillo no redirigir automáticamente al usuario, pero sí, lo que has descrito es correcto. Después de que el usuario haga clic en el enlace para generar el tema, el script realizaría solicitudes periódicas para obtener la URL del tema del servidor de WordPress. Una vez que tuviera la URL, redirigiría al usuario al tema de Discourse.

2 Me gusta