Plugin wp-discourse-shortcodes

No pude encontrar ninguna llamada a la API en ninguno de los registros de Discourse. :woman_shrugging: 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! :tada: (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). :joy:

Este es un gran plugin. Dos preguntas sobre funciones:

  1. ¿Es posible mostrar imágenes dentro de las publicaciones, como con el script de inserción que usa template=“complete”?

  2. ¿Es posible reemplazar los nombres de usuario por nombres reales?

Muchas gracias.

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

y de nuevo con los mosaicos y todos los demás atributos de shortcode eliminados..

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 );

O agrega elementos adicionales al HTML existente

apply_filters( 'wpds_topiclist_above_header', $output, $topic, $category, $poster_avatar_url, $args );
apply_filters( 'wpds_topiclist_above_footer', $output, $topic, $category, $poster_avatar_url, $args );
apply_filters( 'wpds_topiclist_avatar', $avatar_image, esc_url_raw( $poster_avatar_url ) );
apply_filters( 'wpds_topiclist_below_footer', $output, $topic, $category, $args );

¿Disculpa, te refieres a que el tema de una categoría anidada se muestra, pero no su insignia de categoría?

1 me gusta

Muchas gracias, Angus. Eso es útil.

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…

1 me gusta

Gracias por la aclaración, Ryan. Le echaré un vistazo a ese problema la próxima semana y me pondré en contacto contigo.

1 me gusta

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.

2 Me gusta

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.

Y esto funciona para bloquear temporalmente las nuevas discusiones del personal hasta que finalmente se realice la llamada ajax.

Entonces, ¿quizás solo comentar la llamada ajax?..

¿Estoy pasando por alto algo que haría que este enfoque fuera desaconsejable?

1 me gusta

Revisando

:tada: Me complace anunciar que el plugin WP Discourse Shortcodes ahora tiene soporte para la (experimental) función de filtro de lista de temas. :confetti_ball:

Además de source="latest" o source="top", ahora puedes usar source="filter" y poner la consulta de filtro en el parámetro q, así:

[discourse_topics source="filter" q="category:general,site-feedback"]

¡No olvides habilitar primero la configuración experimental_topics_filter!

También he corregido algunos errores:

  • Caché completamente rediseñada (esto también elimina la necesidad de tener un atributo id)
  • Los nombres de usuario no se mostraban en foros no ingleses
  • Añadido filtro de categoría a latest-AJAX

El plugin todavía no está en el repositorio de plugins de WordPress, así que deberías clonarlo desde el repositorio con git.

cd wp-content/plugins
git clone https://github.com/communiteq/wp-discourse-shortcodes

O alternativamente, sube este archivo ZIP para instalarlo.
wp-discourse-shortcodes-0.40.zip (67.6 KB)

5 Me gusta

¡Esto es enorme! Gracias por el gran trabajo, eso abre un conjunto completamente nuevo de posibilidades :heart:

1 me gusta

Estoy tratando de seguir esto, pero no parece que pueda averiguar si esta es una capacidad actual.

— Quiero mostrar PUBLICACIONES RECIENTES en todas/cualquier categoría y tema. —

La información que me gustaría mostrar es:

  • Nombre de usuario / Fecha de publicación
  • Título de los temas
  • Título de la categoría
  • Extracto (45 caracteres)
  • Me gusta (¿y quizás respuestas?)

¿Alguien sabe si esto es posible?

El plugin utiliza lo que proporciona Discourse, así que por favor continúe esa pregunta en el tema de su otra publicación aquí.

Llego un poco tarde a la fiesta, ¡pero gracias!

1 me gusta