¿El almacenamiento en caché de los menús de WordPress debe ser específico para cada página?

3

Introducción

Al optimizar el rendimiento de los sitios web de WordPress, siempre busco almacenar en caché ciertas partes del sitio web, principalmente (por supuesto) aquellas que requieren muchas consultas / cálculos.

Para el almacenamiento en caché del menú de WordPress por lo general uso una función como la que publiqué como respuesta aquí .

Esta función comprueba si hay un transitorio que contiene el menú-HTML, y si existe, entrega el HTML del transitorio. Si no existe, el menú es la compilación y el conjunto de transitorios. Para estar limpio, también me conecto a wp_update_nav_menu para limpiar el transitorio tan pronto como se guarda el menú, para tener siempre la última versión disponible.

Hasta ahora todo bien.

Esta técnica funciona muy bien y proporciona un gran aumento de rendimiento, especialmente si el menú contiene muchas entradas.

El problema

Ahora, algunos meses después de desarrollar este método, me encontré con un problema y me siento estúpido por no haberlo pensado en primer lugar.

Los menús son diferentes en diferentes páginas

Dependiendo de cómo se llame la página, wp_nav_menu entrega un código HTML diferente. current-menu-item y clases como esa se aplican, por supuesto, a los menuitems.

Entonces, el problema es, ¿cuál es la mejor manera de almacenar en caché los menús y aún tener las clases correctas disponibles para cada página específica?

Pensé en dos versiones

  • agregar las clases a través de jQuery, lo que resulta en más cálculos en el lado del cliente
  • almacenar en caché los menús para cada ID por separado, dando como resultado bastante carga de datos, si la página tiene muchas menuentas

Sin embargo, tiendo a usar la segunda opción. ¿Tiene alguna preocupación con el almacenamiento en caché de tanto HTML como transitorios?

    
pregunta fischi 09.03.2013 - 11:40

1 respuesta

1

No hay una solución genérica para este problema: el mismo menú se puede representar con diferentes caminantes en diferentes páginas, o los complementos cambian el menú en algunas páginas.

Puede extender su secuencia de comandos para evaluar las diferencias en un menú intacto y crear el JavaScript necesario sobre la marcha ... y también almacenar en caché ... para cada página.

No creo que valga la pena la molestia. hacer que todos los casos sean correctos es un trabajo duro, y el menú aún sería diferente para los usuarios sin JavaScript (motores de búsqueda, errores de script no resueltos, etc.).

    
respondido por el fuxia 09.03.2013 - 12:20

Lea otras preguntas en las etiquetas