Estamos usando Discourse en lugar de los comentarios de WP (está marcada la opción “Eliminar plantilla de comentarios de WordPress”, así como Ajax). Tengo el control de acceso de Toolset en un tipo de contenido personalizado que publica en Discourse (en una categoría privada que coincide con el control de acceso). Normalmente, este tipo de control también afectaría la visibilidad de los comentarios del artículo, pero no está afectando la visualización de los comentarios de Discourse. ¿Alguna idea?
Quizás pueda agregar algo más de contexto aquí:
Tenemos un tipo de entrada personalizado privado en nuestro sitio de WordPress, cuyas entradas deben estar conectadas con temas en una categoría privada de Discourse. Los mismos usuarios que tienen acceso a la categoría de Discourse tienen acceso a la entrada en WordPress. Estamos gestionando esto asignando a estos usuarios el rol de Editor en WordPress, mientras que en Discourse pertenecen a un grupo que les otorga acceso a la categoría privada.
En ningún caso deben los usuarios no autenticados ver ni las entradas en WordPress ni los hilos de discusión en Discourse. Esto está funcionando según lo previsto mediante los controles de acceso por rol y grupo, respectivamente. En el lado de WordPress, como se mencionó anteriormente, estamos utilizando Toolset Access para restringir el acceso a todas las entradas de este tipo de entrada personalizado.
Sin embargo, los hilos de discusión privados de Discourse se muestran públicamente a través de la incrustación en WordPress, aunque el contenido de la entrada en sí esté oculto. En otras palabras, los comentarios incrustados de Discourse no están siendo ocultados por el control de acceso. Estamos tratando de averiguar qué podría estar colocando esta salida fuera del bucle de control y cómo corregirlo.
El complemento WP Discourse muestra los comentarios cargando una plantilla de comentarios personalizada. Utiliza el filtro comments_template de WordPress para cargar dicha plantilla. No estoy seguro de por qué los comentarios siguen cargándose cuando tienes Toolset Access Control configurado para un tipo de contenido. Investigaré qué está ocurriendo con esto.
Creo que el complemento debería agregar una opción para no cargar los comentarios en los posts que se han publicado en una categoría privada de Discourse. Cuando esté habilitada, solo se mostraría un enlace al tema de Discourse. Sin embargo, no estoy seguro de que eso resuelva el problema que estás experimentando.
Hola Simon, estoy trabajando en esto con @Kayla. Lo que describes aquí resolvería nuestro problema.
También sería bueno saber cómo incluir la plantilla de comentarios de Discourse dentro de nuestro control de acceso más granular. ¡Gracias!
¡Genial! No creo que haya ningún problema para incluir eso en la próxima actualización del complemento. Intentaré tenerlo listo para finales de esta semana. Te mantendré informado sobre el progreso.
Creo que el problema que estás experimentando está relacionado con la prioridad con la que WP Discourse se conecta al filtro comments_template de WordPress. El complemento WP Discourse utiliza una prioridad de 20 para llamar a la función que se conecta a este filtro. Es probable que el complemento Toolset se conecte a ese filtro con una prioridad más baja para evitar que la plantilla de comentarios se cargue en páginas protegidas.
Me puse en contacto con Toolset al respecto y me equivoqué sobre el comportamiento esperado. El plugin Toolset Access no se conecta a la plantilla de comentarios en absoluto. Ocultar los comentarios en contenido restringido requiere código personalizado que se conecte a su filtro toolset_access_api_get_post_permissions para suprimir o permitir la renderización de la plantilla de comentarios a nivel de tema. Disculpa que no me hubiera dado cuenta de que su restricción de contenido se refiere literalmente a la propia plantilla del contenido. ![]()
Esta opción se ha añadido al plugin en la versión 2.0.7. Ya está disponible en el repositorio de WordPress.
Cuando selecciones la opción “Habilitar comentarios de Discourse” del plugin, ahora verás tres opciones para los tipos de comentarios:
Selecciona la opción “Mostrar comentarios para temas públicos” para que solo se muestren comentarios en temas que estén en categorías públicas de Discourse. Si un tema se publica en una categoría privada, se mostrará un enlace al tema y a su número de comentarios.
Si un tema que se ha publicado desde WordPress hacia Discourse se mueve de una categoría pública a una privada en Discourse, los comentarios se eliminarán de WordPress y se reemplazarán por un enlace. Este cambio puede tardar hasta 10 minutos en ocurrir porque el plugin WP Discourse almacena en caché los datos de comentarios que recibe de Discourse. Puedes borrar la caché de categorías inmediatamente seleccionando la opción “Forzar actualización de categorías” en la página de Configuración de publicación del plugin y guardando dicha página de configuración.
Para permitir que el plugin acceda a los permisos de categoría de las subcategorías de Discourse, debes seleccionar la opción “Mostrar subcategorías” en la pestaña Configuración de publicación del plugin. Si esa opción no está habilitada y la opción “Mostrar comentarios para temas públicos” sí lo está, todas las subcategorías de Discourse se considerarán privadas y se mostrará un enlace en lugar de los comentarios.
Nota: que el plugin reconozca los cambios de categoría realizados directamente en Discourse solo está disponible si tu sitio usa una versión reciente de Discourse.
Para controlar programáticamente qué usuarios tienen comentarios de Discourse mostrados para ellos, puedes omitir completamente la carga de los comentarios de WP Discourse para un usuario usando el filtro wpdc_load_comments_template_for_user. A ese filtro se le pasan tres argumentos: $load_template (por defecto true), $current_user y $post_id. Devuelve false desde una función que se conecte al filtro para evitar que se carguen los comentarios para un usuario en particular.
Los cambios que estoy observando con esta actualización son que, aunque discourse_replies_html se carga y se muestra como se espera, parece que no logra cargar discourse_no_replies_html (veo el enlace de texto “Join Discussion Link: no Comments”, pero no nuestra plantilla). Además, si la publicación no ha sido publicada en Discourse, aparece un nuevo mensaje: “Comments are not currently available for this post.” Todos estos son posts públicos en categorías públicas de Discourse.
Para los posts publicados en una categoría privada de Discourse, parece que se está cargando el formulario de comentarios predeterminado de WP. No hay ningún enlace al tema de Discourse.
La opción “Display comments for public topics” está activada, al igual que “Display Subcategories”. He actualizado “Clear Cached Comment HTML” y “Force Category Update”. ¿Estoy pasando por alto algo?
¡Gracias por reportarlo! El problema debería estar solucionado en WP Discourse versión 2.0.8.
Voy a realizar algunos cambios en el plugin más tarde hoy o mañana que deberían resolver los otros problemas que estás reportando. El fallo al cargar la plantilla de comentarios de WordPress para publicaciones que no se han publicado en Discourse tenía que solucionarse de inmediato.
Esto es lo que veo cuando selecciono la opción “Mostrar comentarios para temas públicos” y la opción “Mostrar comentarios existentes de WordPress”, y luego publico una publicación con WordPress existente:
Desde el punto de vista de un usuario, esto no parece muy claro (eso podría solucionarse con alguna personalización de WordPress), pero el enlace a los comentarios de Discourse existe.
Si has habilitado la configuración del sitio “Guardar HTML de comentarios en caché”, intenta desactivarla. Esa configuración no debería causar ningún problema, pero desmarcarla simplificará la depuración de este asunto.
Envíame cualquier otro detalle que tengas sobre el problema. Más tarde hoy publicaré una pequeña actualización en el repositorio de WordPress para solucionar un problema con el botón “Desvincular tema” que está ocurriendo con el lanzamiento de WordPress 5.5.
Estamos en la versión 2.1.1 con WP 5.5. No tenemos la caché de comentarios activada y no estamos utilizando los comentarios de WP (pero ahora ya no se carga el formulario predeterminado, lo cual es bueno).
Sin embargo, a veces se cargan las plantillas personalizadas y a veces no. Volvimos a mostrar los comentarios para todas las publicaciones, independientemente de si el tema de Discourse es privado o no, pero eso no ayudó. No puedo determinar la razón, pero parece persistente para las publicaciones individuales. Ejemplos de publicaciones públicas en temas públicos:
Sin comentarios, no se carga discourse_no_replies_html:
Sin comentarios, se carga discourse_no_replies_html:
Con comentarios, no se carga discourse_replies_html:
Con comentarios, se carga discourse_replies_html:
Es posible que el problema esté relacionado con las plantillas personalizadas, pero también hay otro informe sobre un problema en el que la plantilla de comentarios no se carga y se muestra en su lugar el enlace a los comentarios. No puedo reproducir el problema en mi sitio de desarrollo, pero voy a realizar un pequeño cambio en el plugin que debería solucionar el problema. Lo tendré listo para mañana por la mañana. ¡Gracias por tu paciencia con esto!
¿Podrías intentar actualizar el plugin a la versión 2.1.2 y decirme si eso soluciona el problema?
Puedo confirmar que la actualización a la versión 2.1.2 solucionó el problema de carga de plantillas para nosotros. ¡Gracias!
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

