Discourse no enlaza automáticamente los comentarios debajo de los artículos

Hola!
Tengo el problema de que Discourse ya no muestra los comentarios debajo de mis artículos. Cuando mi artículo se publica, aparece en el foro de Discourse de nuestro blog, pero tengo que vincularlo manualmente en el artículo de WordPress después. Entonces aparecen los comentarios. Pero ese paso no era necesario antes.

Ya escribí sobre ello aquí: 422 Unprocessable Content response when using ActivityPub with WP Discourse - #5 by Miasanrot

Desafortunadamente, la solución allí no fue mi solución y parece ser muy individual. Así que abrí un nuevo hilo. Estas son las tres cosas que me pidieron que publicara:

  1. Registros de WP Discourse, incluido el archivo meta.
  2. Registros de Discourse, en particular el registro de errores.
  3. Una lista de plugins que estás utilizando en Discourse.

Archivos de registro de WP Discourse:
Este es de hoy:

[2024-03-14 06:02:59] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13514,"http_code":403} 
[2024-03-14 07:14:26] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13651,"http_code":403} 
[2024-03-14 08:22:19] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13815,"http_code":403} 
[2024-03-14 08:48:21] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13638,"http_code":403} 
[2024-03-14 09:37:36] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13759,"http_code":403} 
[2024-03-14 10:55:34] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13603,"http_code":403} 
[2024-03-14 11:25:23] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13603,"http_code":403} 
[2024-03-14 12:36:28] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13944,"http_code":403} 
[2024-03-14 16:03:01] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13977,"http_code":403}

**Aquí está lo que se incluye en el archivo meta:**

### Servidor ###

WordPress - 6.4.3
PHP - 8.0.26
MySQL - 8.0.30

### Plugins Activos ###

Admin Columns for ACF Fields - 0.3.1
Akismet Anti-spam: Spam Protection - 5.3.1
Borlabs Cookie - Cookie Opt-in - 2.2.67
Contact Form 7 - 5.8.6
Genesis Blocks - 3.1.1
LightStart - Maintenance Mode, Coming Soon and Landing Page Builder - 2.6.9
Podigee Wordpress Quick Publish – now with Gutenberg support! - 1.3.5
Proxy Real IP - 1.1
Shariff Wrapper - 4.6.9
TablePress - 2.2.5
TablePress Extension: Responsive Tables - 1.1
Theme Test Drive - 2.9.1
User Role Editor - 4.64.1
WP-Discourse - 2.5.1
WP Import Export - 3.9.26

### Configuración de WP Discourse (Secretos Excluidos) ###

display-subcategories - 0
allow-tags - 0
max-tags - 5
publish-as-unlisted - 0
full-post-content - 0
custom-excerpt-length - 50
add-featured-link - 0
auto-publish - 1
force-publish - 0
force-publish-max-age - 5
publish-failure-notice - 1
auto-track - 1
allowed_post_types - post
exclude_tags - 
hide-discourse-name-field - 0
discourse-username-editable - 1
direct-db-publication-flags - 0
verbose-publication-logs - 0
enable-discourse-comments - 1
comment-type - display-comments
ajax-load - 1
load-comment-css - 1
discourse-new-tab - 1
hide-wordpress-comments - 1
show-existing-comments - 1
max-comments - 50
min-replies - 1
min-score - 0
min-trust-level - 0
bypass-trust-level-score - 50
only-show-moderator-liked - 0
custom-datetime-format - 
cache-html - 1
clear-cached-comment-html - 0
verbose-comment-logs - 0
use-discourse-webhook - 1
webhook-match-old-topics - 0
use-discourse-user-webhook - 0
webhook-match-user-email - 0
enable-sso - 0
auto-create-sso-user - 0
real-name-as-discourse-name - 0
force-avatar-update - 0
redirect-without-login - 0
sso-client-enabled - 0
sso-client-login-form-change - 0
sso-client-sync-by-email - 0
sso-client-sync-logout - 0
logs-enabled - 1

No sé cómo descargar o copiar algo del protocolo de errores de Discourse, pero esta es una captura de pantalla de hoy. Las 16:06 son casi la hora en que se publicó nuestro último artículo (16:11)

Lista de plugins en Discourse:

Chat (desactivado), Data Explorer, Footnote, Spoiler Alert

Si debería añadir algo, házmelo saber. Gracias de antemano por tu ayuda.

¡Hola @Miasanrot, gracias por todos estos detalles, se agradecen mucho!

Lo primero que hay que investigar aquí es el error de sincronización de comentarios 403 en los registros, que parece estar relacionado con tu problema de no ver comentarios. Un error 403 significa que WP Discourse no puede acceder a Discourse, probablemente debido a un fallo de autorización.

  1. En la pestaña “Connection” del panel de administración de WP Discourse, ¿ves un mensaje que dice “You are connected to Discourse!”?

  2. Como estás utilizando el plugin de WordPress “Proxy Real IP - 1.1”, tengo curiosidad por el entorno de red de tu WordPress y Discourse. ¿Qué papel juega ese plugin?

¡Gracias por la respuesta rápida! También lo aprecio.

Sí, muestra que estoy conectado. Y también parece crear algo cuando publico un artículo. En WP a veces veo el error de que el artículo ya está incrustado (creo que es el mismo problema que tuvo el usuario en el hilo que enlacé). Así que también creo que debe haber una conexión (y se muestra en el panel de administración, como escribí).

El segundo es un poco más difícil. Me hice cargo de este blog en enero y no configuré todo por mi cuenta. Pero le pregunté al administrador anterior sobre ese plugin y me pondré en contacto con usted tan pronto como tenga una respuesta.

Editar: El plugin se puede desactivar, dijo. ¿Así que podría intentar eso en el siguiente paso?

Desafortunadamente, aún no hay solución. Desactivar el plugin mencionado anteriormente no ayudó.

Disculpas Justin, perdí la pista de esto. El problema es muy probablemente algo específico de tu configuración de Wordpress.

(el énfasis es mío)

¿Cuándo dejaron de funcionar? ¿Puedes identificar algo que haya cambiado en Wordpress cuando los comentarios dejaron de funcionar? ¿Has

  1. Actualizado Wordpress?
  2. Actualizado el plugin?
  3. Cambiado (o actualizado) tu tema?

Hola Justin, solo quería saber cómo vas con este problema.

¡Gracias por volver a consultar!

Difícil de responder, pero creo que la actualización de WordPress (y de PHP, ambas el mismo día) podría ser el punto en el que todo sucedió. Al menos vi ese problema por primera vez después. Estoy ejecutando la penúltima versión de WordPress (creo que en los últimos días se publicó la 6.5, aún no instalada) y PHP 7.4 si no me informan correctamente.

El plugin de Discourse se ejecuta en la versión 2.5.1.

¿Sabes de qué versión de WordPress actualizaste? ¿Cuánto tiempo pasó entre actualizaciones? ¿También actualizaste tu tema al mismo tiempo? ¿Tu tema es un “tema de bloques”?

Espero poder responder sin malentendidos ni información errónea. Me hice cargo de este blog en enero y la versión de WP era bastante antigua. Supongo que 5.x, no puedo decirte el número exacto. Definitivamente pasó mucho tiempo entre las dos actualizaciones. Nuestro tema sigue siendo el mismo, es un tema individual que fue diseñado y codificado para nuestra página. Sabía que esto podría causar problemas al actualizar la página, especialmente porque no tengo habilidades de codificación, pero parecía estar bien hasta que me di cuenta de esto del discurso.

Disculpa si no puedo darte información más detallada al respecto, hago mi mejor esfuerzo :smiley:
Gracias de nuevo por tu paciencia y ayuda.

Entiendo. Es una mejora significativa (es decir, de Wordpress 5.x a 6.x). ¿Sería posible probar esto con un tema predeterminado de Wordpress (cualquier tema predeterminado de Wordpress) y ver si tienes el mismo problema? Sé que es un inconveniente, sin embargo, ese es el culpable más probable aquí (es decir, tu tema). Es posible que necesites pasar a un Bloque de Comentarios

Eso debería ser posible. Publicaré un artículo más tarde hoy y podría cambiar a un tema de wp poco antes y ver si funciona.

Ah, y solo una adición @angus: ¿Qué significa exactamente tema de bloques? Tengo el editor de bloques en WP para cosas como páginas y artículos, pero si tema de bloques significa que puedo simplemente agregar bloques para diseñar la página como quiero, entonces no es un tema de bloques. Solo para aclarar.

1 me gusta

Así que cambié al tema de Wordpress Twenty Twenty-Three, luego publiqué mi artículo. Como siempre, creó un hilo en mi discourse, pero como antes no estaba conectado a la sección de comentarios del blog y tuve que hacerlo manualmente.

Entiendo. Algo en tu sitio está impidiendo que el plugin funcione correctamente. Si no es el tema, lo siguiente a revisar son los otros plugins que tienes instalados.

Sin tener más información sobre tu sitio, lo único que puedo aconsejarte es que tendrás que intentar deshabilitarlos uno por uno y ver si eso cambia el comportamiento. Es posible que alguno de ellos no sea compatible con la versión actual de WordPress y/o PHP 8.x (el plugin WP Discourse lo es con ambos).

De nuevo, quizás no sea lo que querías oír, sin embargo, con un sistema “enchufable” como WordPress, estas cosas (es decir, conflictos de plugins) son posibles fuentes de error. En este punto, vale la pena intentar eliminar esa fuente.

1 me gusta

¿Es posible que el almacenamiento en caché en combinación con el tema tenga algo que ver? No tengo ni idea de todo eso, pero a veces las cosas pequeñas no aparecen en la página y después de borrar la caché funciona de nuevo. Por ejemplo: Ayer enlacé un artículo manualmente y los comentarios aún no aparecían en la página. Borrar la caché ayudó.

Hoy publiqué un artículo y lo enlacé automáticamente con discourse como debería. Pero los comentarios no aparecieron. Así que de nuevo borré la caché y entonces estuvieron allí. No es fácil para mí entender esto, pero algo no está bien ahí.

Sí, el almacenamiento en caché podría estar influyendo en tu problema. Intenta usar la configuración “Cargar comentarios con Ajax” en la pestaña “Comentarios” de la configuración de WP Discourse.

¿Qué solución de almacenamiento en caché estás utilizando?

La opción se activó.

Estoy usando WP Rocket para el almacenamiento en caché, pero lo instalé después de ver algunos problemas. Estos problemas parecían estar resueltos. Pero no puedo decirte exactamente cómo funcionaba el almacenamiento en caché antes. Sé que había almacenamiento en caché, pero no conozco la solución concreta. Cuando me hice cargo del blog, noté una carga lenta de las imágenes. Después de usar WP Rocket, parece haber mejorado durante uno o dos meses. (El problema de los comentarios ya existía antes de que lo instalara)

Pero en casos raros tenemos el problema de que algo se muestra mal en la página. La semana pasada, los comentarios desaparecieron después de conectarlo manualmente a Discourse. Así que borré la caché con WP Rocket y volvió a funcionar.

Parece que tengo el mismo problema o uno similar con errores 422. Ya hablé con @angus de que configuraré un entorno de prueba (WP y Discourse) para realizar pruebas, espero que este fin de semana…

2 Me gusta

WP Rocket puede ser un verdadero dolor de cabeza. Genera una copia estática de tu contenido, pero intenta dejar intactas aquellas partes que deberían ser dinámicas, o que deberían ser estáticas por muy poco tiempo. Si tienes la suerte de encontrar una regla que deshabilita la caché de forma fiable en los comentarios, funciona, pero empiezas a perder los beneficios que obtuviste.

En cuanto a la caché, WordPress es… no es exactamente una pesadilla, pero casi. Abandoné WP Rocket porque necesitaba demasiada supervisión y mi tiempo, y funciona mejor con TTLs bastante cortos. Obtuve mejores resultados usando otras herramientas (y entonces debería ser realmente realista: ¿hay algún punto sólido para intentar ahorrar un segundo si necesita mi tiempo de trabajo varias horas y casi todas las semanas; deshabilitar plugins innecesarios y elegir el tema adecuado es una mejor opción?).

La mayoría de los sitios en realidad no necesitan comentarios porque los reciben con bastante poca frecuencia y entonces Discourse como sección de comentarios cumple otros propósitos. Pero, por supuesto, depende.

Para mí, la conexión con Discourse actúa como un anuncio. Pero la mayoría de mis visitantes usan teléfonos y casi nunca se desplazan lo suficiente, el mismo signo de interrogación que las barras laterales.

1 me gusta

¿Y qué herramientas? De nuevo: No estoy muy familiarizado con todas estas cosas técnicas, por eso estoy aquí e intentando ver si hay alguna ayuda para el problema. El problema existía antes de instalar WP Rocket y resolvió algunos problemas de otro tipo, pero si esta herramienta es de alguna manera problemática, estoy abierto a otras soluciones.

Tenemos hasta 100 o 200 comentarios debajo de nuestros artículos (en Discourse para ser precisos), por lo que es justo decir que queremos que se integren, incluso si un usuario que solo quiere leer el artículo no se desplaza hasta allí.

Fuera de alcance en este foro, porque se trata de optimizar WordPress. Prueba en Facebook, algo como “acelerar WordPress”.

Pero puede que te interesen plugins como Asset CleanUp, EWWW Image Optimizer o incluso Redis, si tienes muchos usuarios concurrentes. Deberías usar al menos herramientas de Nginx para eliminar la mayor cantidad de tráfico de bots posible. Pero ninguna de esas ayuda demasiado si los verdaderos cuellos de botella son el tema y toneladas de plugins diferentes. Y la mala noticia es que debes limpiar la base de datos cada cierto tiempo.

Pero si WP Rocket ayuda, eso está bien. Pero no uses tiempos de caché demasiado largos. Y debes excluir a Discourse de la caché.