• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Cómo usar Transients en WordPress

Cómo usar Transients en WordPress

Transients en WordPress

[ 21 febrero 2017 ] [ Actualizado: 4 noviembre 2020 ]
[ Autor: Jhon Marreros Guzmán ][ Core - Avanzado] [ ]

optimización

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Tienes un sitio Web y te gustaría consultar datos de otro sitio remoto, sabes que esto puede causar problemas de rendimiento, no te preocupes, puedes mantener los datos en cache de WordPress usando la API Transient.

 

1- Generalidades

La API Transients de WordPress te ofrece una manera simple de almacenar temporalmente datos de cache en la base de datos, específicamente en la tabla wp_options en donde se almacenan también las opciones de configuración de WordPress, con la diferencia de que los registros de Transients almacenan también una fecha de expiración.

En la siguiente imagen se pueden ver algunos registros transient de ejemplo:

Registros Transients

 
Como se puede observar en la imagen, los registros tienen el texto transient (transitorio) como parte del nombre, además estan compuestos usualmente de pares, un registro almacena el valor y el otro la fecha de expiración en formato unix.

 

2- Creando Transients

Para crear crear un transient puedes usar la siguiente sintaxis:

set_transient( $transient, $valor, $expiracion );
  • $transient:
    Nombre único, en la imagen anterior esta pintado de verde, ten en cuenta además que el nombre no debería acceder más de 40 caracteres
  • $valor:
    Datos a almacenar, puede ser de cualquier tipo, cadena, array u objeto, la API lo serializa de manera automática en caso de tratarse de datos complejos
  • $expiracion:
    Valor entero que representa la máxima fecha, en formato unix, pasado esta fecha el registro no será considerado como válido. Se suelen utilizar constantes de para representar la 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
    

 
Tomando esto en cuenta crearemos un nuevo transient con el nombre dcms_license_text que nos almacene una cadena de texto y que tendrá una expiración de 10 minutos

set_transient( 'dcms_license_text', 'WordPress Web Publishing Software', MINUTE_IN_SECONDS*10 );

 

3- Recuperando Transients

Para recuperar un transient puedes usar la siguiente sintaxis:

get_transient( $transient );

En nuestro ejemplo anterior puedes recuperar la cadena de texto usando:

$cadena = get_transient( 'dcms_license_text' );
//$cadena = 'WordPress Web Publishing Software'

 

4- Eliminando Transients

Para eliminar manualmente un transient puedes usar la siguiente sintaxis:

delete_transient( $transient );

Esta función retorna verdadero si se eliminó correctamente o falso en caso no exista el transient en la base de datos. Se usa esta función usualmente al desinstalar un plugin para no dejar restos de los transients usados.

Usar transients no sobrecargará tu tabla wp_options, un transient al ser consultado si su fecha de expiración ha sido superada entonces será eliminado automáticamente.

 

5- Ejemplo de uso de Transients

En el siguiente ejemplo obtenemos los primeros 36 caracteres de un archivo de texto que esta ubicado en un servidor remoto, sin embargo para no estar consultando continuamente este archivo remoto cada vez que un usuario carga la web, almacenamos el texto en cache a través de la creación del transient dcms_licence_text y le damos la expiración de un día.


//función que devuelve los primeros caracteres de un archivo de texto remoto
function dcms_getremotetext(){
   $license_text = wp_remote_get("https://decodecms.com/license.txt");
   return substr($license_text['body'],0,36);
}

//función que imprime los caracteres devueltos por la función dcms_getremotetext
//y que optimiza la devolución almacenando los datos en cache por un día.
function dcms_gettextfooter() {

	$remotetext = get_transient('dcms_licence_text');

	if ( ! $remotetext ){
		$remotetext = dcms_getremotetext();
		set_transient('dcms_licence_text', $remotetext, DAY_IN_SECONDS );
	}

	echo $remotetext;
}

//Hoook de WordPress para mostrar el texto en el footer
add_action( 'wp_footer', 'dcms_gettextfooter' );

 
¿Aún con dudas?, en el siguiente video se detalla los puntos tratados anteriormente.

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Cómo usar la cache de objetos en WordPressCómo usar la cache de objetos en WordPress
  • Listar todos los Shortcodes en un sitio WordPressListar todos los Shortcodes en un sitio WordPress
  • Heartbeat API de WordPress, aprende a configurarlaHeartbeat API de WordPress, aprende a configurarla
  • Deshabilitar Gutenberg en WordPress selectivamenteDeshabilitar Gutenberg en WordPress selectivamente
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (2 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. David

    15 abril, 2021

    Genial como siempre, gracias

    • Jhon Marreros Guzmán

      16 abril, 2021

      Gracias!

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Jooble
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social woocommerce

Populares

Botón scroll hacia arriba en WordPress sin plugins

Usando Custom Post Types en WordPress

Personalizar la página de error 404 en WordPress

Contenidos de texto a voz en WordPress

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados