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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php // Comprobamos si existe el transient con el nombre "foo_featured_posts". //Si existe se lo asignamos a la variable $featured y no se entra dentro del if if ( false === ( $featured = get_transient( 'foo_featured_posts' ) ) ) { /* Si el transient no existía ejecutamos la query y generamos el transient */ $featured = new WP_Query( array( 'category' => 'featured', 'posts_per_page' => 5 )); //Guardamos el resultado de la query en un transient válido por 1 hora set_transient( 'foo_featured_posts', $featured, HOUR_IN_SECONDS ); } ?> // Ejecutamos el Loop de manera normal <?php if ( $featured->have_posts() ) : ?> <?php while ( $featured->have_posts() ) : $featured->the_post(); ?> // TODO <?php endwhile; ?> <?php wp_reset_postdata(); ?> |
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:
1 |
set_transient( 'foo_featured_posts', $featured, 30 * MINUTE_IN_SECONDS ); |
Um Instagram Follower oder TikTok Follower zu kaufen, kommen Sie einfach zu FollowKing. Durch den Fokus auf Kundenzufriedenheit und Vertrauen ist es unserem Unternehmen seit seiner Gründung gelungen, sich von den führenden Unternehmen der Branche abzuheben und ein großes Publikum zu erreichen. Wir bieten Ihnen Pakete mit hoher Qualität und Rabatten passend für jedes Budget.