PHP, Wordpress

noviembre 2016

Mejorar la velocidad de carga con la API de transients de WordPress

La “Transients API” de WordPress permite almacenar temporalmente información cacheada en base de datos. Dicho de una manera mas simple, si, por ejemplo, tenemos una consulta muy compleja que ralentiza nuestro WordPress, podemos almacenar el resultado de esa consulta en base de datos, para reutilizar esa información en el futuro en lugar de tener que repetir la (lenta) consulta.

Uno de los ejemplos mas claros de uso de los transients, es almacenar consultas a APIs externas, por ejemplo las de Facebook a Twitter. Si tenemos un módulo en el que mostramos nuestros últimos tweets, podemos consultar los tweets mediante la API de Twitter y almacenar el resultado de la consulta en un transient en nuestra base de datos. A los siguientes usuarios que visiten nuestra página, les mostramos el contenido almacenado en el transient, ahorrándonos la consulta a la API de Twitter.

Cuando definimos un transient, le asignamos un “tiempo de vida” (parecido al caso de las cookies), una vez pasado ese tiempo WordPress borrará el contenido de ese transient y dejará de estar disponible. Este es el código de ejemplo comentado de la página de WordPress para transients:

En el código podemos ver que utilizan una constante llamada HOUR_IN_SECONDS . Estas constantes (para minutos, horas, días, meses y años) están disponibles en la API de WordPress. Por ejemplo para crear un transient válido para 30 minutos haríamos: