No pude encontrar ninguna llamada a la API en ninguno de los registros de Discourse. Sin embargo, la buena noticia es que creo que podríamos haberlo resuelto.
El shortcode original usaba source="top" y otros parámetros, así que fui eliminando lentamente el shortcode hasta que solo usaba la configuración predeterminada por omisión. Tenía la impresión de que solo source="latest" utilizaba un webhook según el texto de la casilla de verificación en la configuración de administración de WP, pero habilitamos un webhook para los temas más recientes (y además restringimos el disparador solo a las categorías que queríamos mostrar) y luego, al volver a agregar la categoría principal, ¡el shortcode comenzó a respetar las restricciones de categoría! (No respetó la restricción de categoría con source="latest" hasta que habilitamos el webhook, a pesar de borrar el HTML en caché a través de la página de administración de WP y otras fuentes de almacenamiento en caché que tenemos para el sitio).
Después de ver los resultados deseados usando el webhook + source="latest", volví a cambiar la fuente a “top” y luego agregué los parámetros originales uno por uno. Hasta ahora ha seguido respetando la restricción de categoría. Dejé el webhook habilitado.
Si el webhook es lo que está ayudando (todavía, y no solo algo que sirvió como un reinicio, por así decirlo), sugiero cambiar el texto de la página de administración de WP de “Usar un Webhook de Discourse para actualizar la lista de temas ‘más recientes’” a “Usar un Webhook de Discourse para actualizar la lista [discourse_topics]” (o algo más para dejar claro que no importa la fuente que estés usando en la lista de temas, el webhook es probablemente la panacea que estamos buscando).
También un error con las categorías anidadas que no se muestran. Solo aparecen los temas dentro de una categoría principal.
Ver ejemplo a continuación: General pero no General >> Noticias y Eventos
Hola Ryan, ni las vistas previas de las imágenes de los temas ni los nombres son características del plugin; sin embargo, puedes usar estos filtros para aplicar tu propio formato y posiblemente agregar esos elementos.
Para anular completamente la salida HTML, usa estos dos filtros (es decir, los equivalentes de add_filter)
// Devuelve false para usar tu propio formato
apply_filters( 'wpds_use_plugin_topiclist_formatting', true );
// Devuelve tu propia salida HTML de los datos de discourse_topics
apply_filters( 'wpds_after_topiclist_formatting', $output, $discourse_topics, $args );
Correcto. Si un tema reside en una categoría anidada, la insignia no se mostrará. La captura de pantalla a continuación muestra la insignia faltante. Este es un tema dentro de la categoría anidada General >> Noticias y Eventos. Si cambiara la categoría del tema a la categoría principal ‘General’, la insignia se mostraría como el segundo tema a continuación…
Gracias. Para tu información, agregué un atributo de "nombre real" para reemplazar los nombres de usuario y publiqué mis cambios dentro de este repositorio. Soy bastante nuevo en git, así que lamento que no haya seguido los canales de commit adecuados, pero los cambios están ahí si alguna vez son útiles para alguien más.
El gran problema con este plugin sigue siendo la incapacidad de incluir/excluir por categoría. En un foro privado basado en membresía, o ves todas las categorías o no ves ninguna, lo que significa que no hay forma de excluir los temas del personal de ser mostrados a la base general de miembros.
Sin embargo, parece que una solución fácil podría ser comentar la solicitud ajax y depender exclusivamente del webhook. Tenemos disparadores configurados para excluir la categoría del personal en el webhook.