• Saltar a la navegación principal
  • Saltar al contenido principal
Código Genesis

Código Genesis

Tutoriales de WordPress y Genesis Framework

  • Empieza aquí
  • Cuenta
    • Suscripción
    • Perfil
    • Actualizar tarjeta
    • Favoritos
    • Salir
  • Suscribirse
  • Acceder

Cómo y cuando usar transients en WordPress

Descubre en este tutorial cómo usar los transients de WordPress para guardar datos en caché de forma transitoria.

Cuando utilizas código que realiza consultas a la base de datos, esto tiene un impacto en el rendimiento de la web. Dependiendo de la complejidad de la consulta y el tamaño de la base de datos el impacto será mayor o menor.

En cualquier caso siempre es recomendable reducir el número de cálculos complejos para minimizar la carga de la web.

Por eso la API Transient de WordPress es una herramienta muy interesante, ya que te permite guardar datos temporalmente en la caché.

Concretamente almacena temporalmente datos de cache en la base de datos en la tabla wp_options. Y como su propio nombre indica estos datos son transitorios, por lo que tienen una fecha de expiración.

Vamos a ver cómo funciona y cómo sacarle partido.

Pasos para usar transients en WordPress

1. Crea un transient

Para crear un transient tienes que usar la siguiente sintaxis:

set_transient( $transient, $value, $expiration );

Dónde:

  • $transient > Nombre único
  • $value > Dato que quieres almacenar
  • $expiration > Fecha máxima de validez (formato unix)

Normalmente se utilizan las siguientes constantes de expiración:

MINUTE_IN_SECONDS  = 60 (segundos)
HOUR_IN_SECONDS    = 60 * MINUTE_IN_SECONDS
DAY_IN_SECONDS     = 24 * HOUR_IN_SECONDS
WEEK_IN_SECONDS    = 7 * DAY_IN_SECONDS
YEAR_IN_SECONDS    = 365 * DAY_IN_SECONDS

2. Recupera un transient

Una vez has creado un transient puedes recuperarlo usando la función get_transient de la siguiente manera:

get_transient( $transient );

Sencillo ¿verdad?

3. Elimina un transient

De la misma manera puedes eliminar un transient usando la función delete_transient de la siguiente manera:

delete_transient( $transient );

4. Ejemplo de cómo usar un transient

Para que veas más claro el funcionamiento vamos a usar un ejemplo aplicando lo que acabas de ver al tutorial en el que te expliqué cómo mostrar los posts favoritos de los suscriptores.

El código quedaría así:

Para ver este código y los otros 1803 snippets de esta web,
identifícate o suscríbete aquí.

Lo que haces en este caso es añadir un par de líneas:

  • $count_array = get_transient( 'cached_favorited_posts' );
  • set_transient( 'cached_favorited_posts', $count_array, WEEK_IN_SECONDS );

Con ellas consigues cachear el array que contiene todos los posts «favoriteados» por los suscriptores (ordenados de mayor a menor) durante una semana.

De esta manera reduces el cálculo a una vez cada 7 días, que este caso debería ser más que suficiente. Pero la idea es que lo ajustes a tu caso en particular. 😉

Conclusiones

Ahora ya sabes cómo puedes usar los transients de WordPress para almacenar un dato en la caché de forma temporal.

Si tienes alguna duda te leo en los comentarios. Y si quieres dejarme una sugerencia para futuros tutoriales, envíamela a través del formulario de contacto.

Todo ventajas de ser suscriptor. 😉

PHP WordPress

Nahuai Badiola

Desarrollador web especializado en WordPress y Genesis Framework. CEO de Código Genesis y cofundador de OsomPress (temas y plugins para WordPress).

Para dejar dudas o preguntas sobre este código, puedes login o suscribirte.

  • Empieza aquí
  • Sobre Código Genesis
  • Preguntas frecuentes
  • Contacto

Aviso legal · Política de privacidad · Política de cookies · Condiciones de contratación
Copyright © 2023 · Código Genesis

¿Has olvidado tu contraseña?