Perdón por la respuesta tardía. Estoy monitoreando la categoría Support > WordPress, pero estoy bastante seguro de que no recibí una notificación sobre este tema.
La forma más sencilla de obtener un mensaje de error detallado es instalar Query Monitor – WordPress plugin | WordPress.org English (Canada) y luego intentar publicar una entrada en Discourse. El plugin WP Discourse solía guardar todos los errores en un archivo de registro, pero dejó de hacerlo porque eso va en contra de las recomendaciones de WordPress.
¿Recibes un error al intentar publicar cualquier entrada en Discourse, o el problema solo ocurre con una entrada en particular?
Parece poco probable que la actualización a Discourse 2.6.0.beta1 sea la causa del problema. ¿Se realizaron cambios en tu sitio de WordPress alrededor del momento en que el plugin dejó de funcionar para ti?
El error solo aparece en production.log dentro del contenedor de Docker; no hay nada más en ningún otro registro ni en la consola (ya estoy ejecutando Query Monitor).
Con cualquier nueva entrada.
Solo actualicé el plugin a la versión 2.0.6. Sin embargo, no es el plugin: he revisado las etiquetas de git sin éxito.
Podría ser útil generar una nueva clave API desde la página de Administración / API de tu Discourse. Asegúrate de que la clave sea una clave global (permite todas las acciones). También verifica que el nombre de usuario de publicación esté configurado correctamente en la pestaña de configuración de la conexión WP Discourse. Dado que puedes enlazar a temas existentes de Discourse, pero no publicar nuevos temas en Discourse, es posible que el problema esté relacionado con los permisos de la API.
Una última cosa que puedes verificar es observar qué valores se establecen en los campos personalizados del post cuando intentas publicar un post desde WordPress en Discourse. Si activas los campos personalizados en el editor, deberías ver algo similar a esto en la parte inferior del editor:
A mí también, pero realmente no muestra nada. Si lo hiciera, sería un error 400 (ya que eso es lo que se reporta en production.log), pero no lo es.
Actualización: después de revisar el código, veo que no habrá error; todo está capturado. Si activas los informes por correo electrónico (correo electrónico pero sin error_log()?), te indica:
Motivo del fallo:
Se devolvió un código de respuesta 400 desde Discourse.
Solicitud incorrecta
pero eso es todo.
Ya hice eso, sin diferencia. Fue un último recurso: la marca de tiempo “último uso” se actualizó en la clave anterior cuando intenté publicar, así que sabía que eso no había cambiado de alguna manera, pero pensé que valía la pena intentarlo.
Eso es todo. Ah, y antes de que preguntes, ocurre lo mismo si no configuro “Publicar como no listado”, pero con la diferencia esperada en los metadatos del artículo.
No estoy seguro de qué podría estar causando la respuesta 400. ¿Podrías intentar instalar Health Check & Troubleshooting – WordPress plugin | WordPress.org English (Canada) y ver si detecta algún problema con tu sitio de WordPress? Cuando se activa ese plugin, se agrega una entrada llamada “Salud del sitio” en la sección Herramientas del panel de control de WordPress. Al hacer clic en ese enlace y luego ir a la pestaña Estado, es posible que se muestren algunos detalles útiles.
El plugin Health Check también te permite desactivar temporalmente los plugins solo para tu sesión. Esto podría ser útil para ver si el problema está relacionado con un conflicto con otro plugin; si tienes algún plugin relacionado con la seguridad instalado en tu sitio, podría valer la pena comprobar si desactivarlos soluciona el problema.
Desafortunadamente, he llegado a un callejón sin salida. El plugin de Comprobación de Salud no sugirió nada útil (lo cual no sorprende) y todo lo demás funciona perfectamente.
Me encontré con el error CSRF cuando estaba automatizando el envío de invitaciones, lo que significa que cometiste un error en tu código; sin embargo, en este caso el plugin no ha cambiado, por lo que mi conclusión es que 2.6.0.beta1 está roto.
Sé que esa no es una conclusión popular, pero es la única que tengo por ahora.
Editado para añadir: Usé el plugin de Comprobación de Salud para desactivar todos los demás plugins; no hubo diferencia.