¿Hay algún peligro en eliminar todos los transitorios?

9

Tengo un gran sitio para un cliente, y como es una instalación de WordPress realmente personalizada con muchas extensiones de funcionalidad, no puedo usar los complementos de almacenamiento en caché.

Para mejorar el rendimiento, construí gran parte del sitio utilizando transitorios (por ejemplo, la navegación, los mapas de Google con todos los marcadores, etc.), y dejo el contenido dinámico dinámico.

El problema aquí es que si cambio algo, tengo que eliminar manualmente el transitorio específico para ver el resultado actual. El sitio muestra diferentes menús y googlemaps cuando se ingresa desde un canal diferente, por lo que tengo como diez transitorios para cada área.

¿Crearía una función en la que los elimine todos a la vez (con una lista de los nombres de los transitorios), o está bien simplemente eliminar todos los transitorios en el sitio?

No es realmente tan urgente, pero para el desarrollo futuro me gustaría saber si tuvo algún problema con cosas como esa y cómo maneja todos sus transitorios.

Saludos, fischi

fischi
fuente

Respuestas:

6

Para el desarrollo, recomendaría trabajar siempre con WP_DEBUGset to truey hacer lo siguiente:

$key = 'transient_key';
if( !WP_DEBUG && ( false !== ($transient = get_transient($key)) ){

   /* Generate transient manually */
   $expiration = 24*60*60;//How long to keep for
   set_transient($key,$transient, $expiration);
}

En general, debería estar bien eliminar transitorios, ya que nunca se debe suponer que están en la base de datos.

Stephen Harris
fuente
gracias @stephen, utilicé esta solución en la fase de desarrollo, pero la eliminé en la fase de refactorización antes de comenzar la vida. no debería haber hecho eso;) pero en su experiencia, ¿ha tenido algún problema con la eliminación manual de transitorios?
fischi
:) gracias por la información sobre la eliminación de transitorios. Pensé algo así, pero no estaba totalmente seguro.
fischi
1
No, nunca he tenido problemas para eliminar los transitorios manualmente, excepto para hartarme y usar este enfoque :).
Stephen Harris el
1

Debería conectar las diversas acciones que se ejecutan cuando las cosas se actualizan para borrar y actualizar los transitorios. Por ejemplo, cuando se actualiza el menú de navegación, se wp_update_nav_menuactiva la acción, conecte una función para actualizar el menú de navegación de forma transitoria.

Milo
fuente
gracias @Milo, esta es una buena idea, pero no utilizable para mí, ya que los transitorios no solo afectan el menú. hay mucho contenido (puntos de interés en un mapa) agregado todo el tiempo, y el sitio está bastante ocupado, así que construyo, por ejemplo, la lista de los PDI más nuevos solo una vez por hora, no solo en elwp_update_nav_menu
fischi
ese fue solo un ejemplo, actualizar cada transitorio en cualquier acción a la que esté vinculado
Milo
Sí, estás justo aquí. Sin embargo, no todos mis transitorios están vinculados a una acción. algunos de ellos se usan directamente en los archivos de plantilla (cuando creo listas grandes) y contienen el html real, cada uno con una duración de una hora. para los transitorios que están configurados para una larga vida, como el que mencionaste, utilizo tu método :)
fischi
1

¿No sería mejor hacer su desarrollo en un entorno de desarrollo para que la necesidad de ver sus cambios a medida que se realizan no afecte el sitio público?

Con este enfoque, podría implementar / promover la producción y eliminar los transitorios en un tiempo de tráfico bajo con un impacto mínimo en el rendimiento del sitio y la experiencia del usuario.

Steve
fuente
sí, sería mejor, por supuesto, pero comencé el proyecto unas semanas después de comenzar mi negocio y aprendí mucho desde entonces. solo estoy construyendo mi infraestructura completa, y estoy planeando desarrollar los temas y complementos personalizados en mi servidor, y tan pronto como terminen, implemente una actualización en los sitios con la función de actualización de wordpress. Este no fue el mejor método que elegí allí, lo admito.
fischi
Creo que todos lo hemos hecho been there and done thaten un momento u otro.
Steve