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 2055 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. 😉