He buscado sobre este tema pero no encuentro ninguna solución que funcione.
¿Cómo agrego un simple breadcrumb básico que muestre categorías y subcategorías?
Por ejemplo:
Inicio / Charlas Técnicas / WordPress
Quiero agregarlo justo debajo de la Navegación Superior.
¿Podrías explicar un poco más a qué te refieres? Nosotros llamamos a la ayuda de navegación de categorías y etiquetas “breadcrumbs” (migas de pan); @Canapin las resalta en su captura de pantalla.
Normalmente mencionaría mostrar una captura de pantalla y marcar cuándo te gustaría que estuvieran, y luego trabajaríamos a partir de ahí, pero primero tengo otra observación:
Creo que si añadieras eso a cada página, esencialmente mostrarías múltiples menús de navegación idénticos, y muy cerca unos de otros.
Como alternativa, ¿hay algo que podamos hacer con la navegación de breadcrumbs existente para que funcione en tu sitio?
También vale la pena aclarar el significado de “breadcrumbs” (migas de pan). He estado en numerosas conversaciones donde dos partes querían decir cosas diferentes:
Breadcrumbs jerárquicos como reflejo de la estructura del sitio (categorías/subcategorías/etiquetas, o libros/título/capítulo)
Breadcrumbs de seguimiento como historial de páginas visitadas (mi ejemplo favorito es dokuwiki [DokuWiki], haz clic en algunos enlaces aleatorios y revisa la cabecera)
No debería adivinar qué espera obtener @asugar, pero quizás similar a todas las demás páginas web — y WordPress usa principalmente: un navigational breadcrumb (migas de pan de navegación) construido usando categorías.
Pero Discourse solo tiene una construcción de dos niveles de profundidad, por lo que solo puede ser inicio - categoría - subcategoría (claro, también podría haber un número de página, pero eso es inútil y supongo que casi imposible de construir).
Por lo tanto, un breadcrumb (migas de pan) no aporta nada más que ocupar espacio.
Es posible, lo que todos intentaban decir es que puede haber una solución alternativa diferente a lo que estás pidiendo, y se preguntaban si te interesaría. Dicho esto, es posible pero no de forma nativa. Tendrías que diseñar o crear algo personalizado para ello. Ejemplos, donde se ha creado algo similar, son:
Entiendo, por eso usé la palabra “similar”, son similares en el sentido de que la implementación o el desarrollo es similar, no exactamente lo mismo o parecido, sino similar o debería decir comparable.
Lo compartí o mencioné que eran similares porque sentí que podría ser útil ver que algo técnicamente similar es posible en Discourse.
Dado que se ha establecido que esto actualmente no es posible en Discourse sin algo personalizado, es posible que necesites crear un tema de Marketplace para ello.
Esa es una ruta de navegación típica que se encuentra en cualquier software de foro, la anterior es de vBulletin. De esto es de lo que estaba hablando.
El menú es efectivamente una ruta de navegación (ya que muestra la categoría y subcategoría, en las páginas de categoría y subcategoría), así que creo que podrías cambiarlo de usar menús desplegables a usar hipervínculos simples a la categoría o subcategoría actual. Apuesto a que cualquiera que sepa escribir un plugin podría hacer eso.
En la parte superior de las páginas de temas, cuando te desplazas hacia abajo, ya se muestra la categoría y subcategoría (y etiquetas), así que tal vez ya estés contento con eso. Me imagino que un autor de plugins podría moverlos a una parte diferente de la pantalla por ti.
Si pagas por esto y lo dejas disponible gratuitamente, podría usarlo…
No soy un desarrollador y si alguien conoce los componentes de Discourse mejor que yo, eso aportaría mejores respuestas que las mías
Veo 2 puntos principales:
Las llamadas AJAX para devolver datos están muy, muy poco optimizadas. Estoy bastante seguro de que puedes hacer un componente así sin hacer ninguna solicitud de este tipo. Hacen que todo sea lento y que el breadcrumb se rellene con retraso.
El componente casi no utiliza la API JS de Discourse, que probablemente puede devolver los datos que necesitamos y decorar/insertar una plantilla de la manera correcta en lugar de inyectar manualmente código HTML en el DOM.