Puedes usar Discourse como un sistema de comentarios para Wordpress. Las funciones de comentarios dependen de las funciones de publicación, por lo que necesitas tener la publicación configurada para que los comentarios funcionen. Si has configurado la publicación y estás listo para configurar los comentarios, mira este video corto o sigue las instrucciones a continuación.
Siguiente Paso
Una vez que hayas configurado los comentarios, es posible que desees consultar los siguientes temas.
Instrucciones
Configuración de Comentarios
Para que los comentarios de Discourse aparezcan en tu sitio de WordPress, debes seleccionar la configuración Enable Discourse Comments. Cuando esté habilitada, verás dos opciones. La opción Display comments cargará una plantilla de comentarios para cada publicación de WordPress que se haya publicado en Discourse. Esta plantilla mostrará los comentarios de Discourse debajo de las publicaciones de WordPress. La opción Display a link to the comments cargará una plantilla de comentarios que muestra un enlace al tema de Discourse asociado debajo de las publicaciones publicadas. Se mostrará el número de respuestas al tema en el enlace, pero no se mostrarán respuestas en WordPress.
Ambas opciones de comentarios funcionan cargando plantillas de comentarios para las publicaciones de WordPress. Esto significa que solo funcionarán si los comentarios están habilitados para la publicación. Si deseas habilitar los comentarios para todas las publicaciones, pero no deseas que se muestren comentarios históricos de WordPress para las publicaciones que no se han publicado en Discourse, habilita la configuración Remove WordPress Comments Template.
Configuración
Aquí hay algunas descripciones breves sobre lo que hacen las otras configuraciones de comentarios. Si todavía no estás seguro de alguna de las configuraciones, responde a este tema y solicita más aclaraciones.
Load Comments With Ajax
Esta configuración se utiliza para cargar comentarios desde el cliente de Wordpress, en lugar de cargarlos desde el servidor. Esto es útil si el almacenamiento en caché de páginas está impidiendo que se carguen comentarios nuevos en tu sitio.
Load Comment CSS
Esta configuración carga una hoja de estilo que soluciona problemas con las oneboxes y las citas de Discourse cuando se muestran en WordPress.
Show Existing WP Comments
Selecciona esta configuración para mostrar también los comentarios existentes de WordPress para las publicaciones que también se han publicado en Discourse, selecciona la configuración.
Existing Comments Heading
Si estás mostrando comentarios existentes, esta configuración agregará un encabezado encima de los comentarios de WordPress.
Selective Import Settings
Hay una serie de configuraciones que te permiten importar comentarios de forma selectiva. Estas deberían ser autoexplicativas. Los valores predeterminados para cada una de estas son un buen punto de partida, así que solo cámbialos si tienes una razón para hacerlo.
- Max Visible Comments
- Min Number of Replies
- Min Score of Posts
- Min Trust Level
- Bypass Trust Level Score
- Only Import Moderator-Liked
Custom Datetime Format
Esta configuración formatea la fecha que se muestra para cada comentario de Discourse que aparece en tu sitio de WordPress. Comienza con el valor predeterminado. Si deseas cambiar el formato de la fecha, haz clic en el enlace en la descripción de la configuración para obtener detalles sobre cómo hacerlo.
Cache Comment HTML
Esta configuración se puede utilizar para mejorar el rendimiento. El almacenamiento en caché del HTML de los comentarios reduce el número de solicitudes realizadas a Discourse. Su configuración asociada Clear Cached Comment HTML debería ser autoexplicativa.
Verbose Comment Logs
Habilitar esto registrará todas las recuperaciones exitosas de comentarios de Discourse, además de los errores (el valor predeterminado).
Webhook de Sincronización de Datos de Comentarios
Habilitar el webhook de sincronización de datos de comentarios en el panel de configuración “Webhooks” puede reducir en gran medida el número de solicitudes de API realizadas desde WordPress a Discourse. Antes de habilitar el webhook:
-
visita la URL de Discourse proporcionada en la descripción de la configuración (
http://forum.example.com/admin/api/web_hooks). -
Haz clic en el botón ‘New Webhook’ y completa el formulario.
-
En el campo Payload URL, introduce la URL que se proporciona en la descripción del campo WP Discourse
Sync Comment Data. Será algo como esto, excepto que usará la URL de tu sitio de WordPress:https://wp-discourse.dev/wp-json/wp-discourse/v1/update-topic-content. -
Asegúrate de que el campo Content Type esté configurado como
application/json. -
En la entrada Secret, introduce una cadena de texto de al menos 12 caracteres. Luego, copia esta misma clave en la configuración de WP Discourse
Webhook Secret Key. -
En el cuadro ‘Which events should trigger this webhook?’, asegúrate de que ‘Post Event’ esté seleccionado.
-
Usa el campo Triggered Categories si solo publicas publicaciones de WordPress en categorías específicas. De esa manera, tu sitio de WordPress no necesitará procesar solicitudes de webhook para temas que no tengan una publicación de Discourse asociada.
-
Deja habilitada la configuración Check TLS certificate of payload url.
Finalmente, habilita la casilla de verificación ‘Active’ y haz clic en crear. Cuando el webhook se haya guardado, haz clic en el botón Go to events.
-
-
De vuelta en WordPress, asegúrate de haber introducido el secreto del webhook de Discourse en el campo
Webhook Secret Keyy habilita la configuración del webhookSync Comment Data. Luego guarda las opciones.
El webhook de Discourse debería estar funcionando ahora. Debes verificarlo haciendo clic en el botón Ping del webhook en Discourse (que se encuentra en /admin/api/web_hooks/:webhook_id/events). Asegúrate de que al hacer ping al webhook se devuelva un código de estado de 200.
Ajuste del período de sincronización de comentarios para páginas de archivo de WordPress
Para obtener el número correcto de comentarios de Discourse para una publicación, el plugin necesita realizar periódicamente una solicitud HTTP a Discourse para obtener el número actual de comentarios. En páginas individuales, este período se establece para que no sea más frecuente que cada 10 minutos. Para páginas de archivo, el período se establece para que no sea más frecuente que una vez cada 24 horas. La razón es evitar realizar múltiples solicitudes a Discourse cada vez que se accede a una página de archivo.
Si aún encuentras que el plugin realiza demasiadas solicitudes a Discourse al mostrar las páginas de archivo de tu sitio, puedes ajustar el archive_page_sync_period enganchándote al filtro 'discourse_archive_page_sync_period'. Lo haces agregando algo como esto al archivo functions.php de tu tema:
add_filter( 'discourse_archive_page_sync_period', 'my_namespace_archive_page_sync_period' );
function my_namespace_archive_page_sync_period( $sync_period ) {
// Esto cambiará el período de sincronización para las publicaciones archivadas a una vez por semana.
return WEEK_IN_SECONDS;
}
Si encuentras que el plugin no realiza suficientes solicitudes a Discourse para recuperar los números de comentarios actuales para las páginas de archivo, puedes agregar algo como esto al archivo functions.php de tu tema. Esto establecerá el archive_page_sync_period a 10 minutos.
Nota: en un sitio concurrido, esto podría suponer una carga pesada para tu servidor.
add_filter( 'discourse_archive_page_sync_period', 'my_namespace_archive_page_sync_period' );
function my_namespace_archive_page_sync_period( $sync_period ) {
// Esto cambiará el período de sincronización para las publicaciones archivadas a una vez por semana.
return 10 * MINUTE_IN_SECONDS;
}
Mostrar comentarios sin cargar la plantilla de comentarios de WordPress
El plugin WP Discourse utiliza la plantilla de comentarios de WordPress para cargar los comentarios de Discourse. Si tu tema no carga la plantilla de comentarios, puedes mostrar los comentarios con la función de ayuda estática get_discourse_comments. Esa función requiere que proporciones el ID de la publicación de WordPress para la que deseas mostrar los comentarios. Aquí tienes un ejemplo simple de su uso:
use WPDiscourse\\Utilities\\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments(859);
echo $discourse_comments;
Los comentarios se mostrarán de la misma manera que se muestran si seleccionas la opción Enable Discourse Comments/Display Comments (que se encuentra en la pestaña Comment Settings del plugin). Cuando se utiliza esta función, se ignora el valor de esa configuración, pero se respetan todas las demás configuraciones de comentarios.
Solución de problemas
El problema más común con los comentarios de Discourse es que pueden no aparecer instantáneamente después de que se realiza la publicación en Discourse. Este retraso es intencional, ya que el plugin intenta reducir el número de solicitudes que necesita hacer a Discourse. Realizar una solicitud cada vez que se carga la página ralentizará tu sitio. Si no ves que los comentarios aparecen instantáneamente, espera 10 minutos antes de volver a actualizar la página.
Problemas con el número de comentarios al mostrar comentarios de Discourse y WordPress
El plugin wp-discourse utiliza el hook de filtro get_comments_number de WordPress para que el número de comentarios de Discourse creados para una publicación se pueda mostrar en todo tu tema. Esto crea un conflicto cuando se muestran tanto los comentarios de Discourse como los de WordPress para una publicación. El plugin puede resolver ese conflicto en la mayoría de los lugares. Un lugar donde no se puede resolver es en el título del comentario que los temas de WordPress a menudo muestran en la parte superior de la sección de comentarios. Esta es la sección que comienza con algo como “2 pensamientos sobre…”.
La forma más fácil de hacerlo es agregar una regla al archivo css de tu tema.
.discourse-comments-area ~ .comments-area .comments-title {
display: none;
}


