TRANSIENT WORDPRESS

TRANSIENT WORDPRESS

TRANSIENT WORDPRESS

I. QU’EST CE QU’UN TRANSIENT WORDPRESS ?

Ce terme barbare cache une fonctionnalité intéressante qui permet de stocker de façon temporaire une information directement dans une base de données. Il vous permet d’éviter de recalculer certains éléments répétitifs de vos pages et ainsi d’accélérer le temps de chargement. Ces éléments peuvent être par exemple : 

  • la liste des articles les plus populaires
  • le contenu de votre  blogroll
  • etc,…

Le transient est stocké dans la base de données dans la table des options. Vous êtes libre de créer ou de récupérer la valeur temporaire pour l’utiliser, que ce soit dans un thème ou un de vos plugins. En résumé, les données sont affichées plusieurs fois par jour, mais seulement chargées une fois par jour. 

Par conséquent, vous comprenez que les transients peuvent être utilisés pour optimiser la vitesse de chargement des pages et ne peuvent être ignorés du point de vue SEO

II. QUELLE EST LA DIFFÉRENCE ENTRE UN SYSTÈME DE CACHE ET UN TRANSIENT ?

Comme les transient, un plugin de mise en cache est là pour l’optimisation de votre site WordPress. Tout comme le plugin de mise en cache se concentre sur l’intégralité de la page web, le transient se concentre sur des parties de la page, telles que les derniers articles, les pieds de page et les parties de la page qui peuvent prendre beaucoup de temps pour le chargement. 

Par conséquent, le transient fait partie des informations stockées dans la base de données et peuvent avoir une durée finie (un peu similaire à un cache). Cependant, vous n’êtes pas obligé de tout rassembler dans un transient. Il faut privilégier les informations relativement statiques afin d’éviter la contradiction entre l’affiche et la réalité. 

Si une page de votre site est produite et que le transient n’existe pas, WordPress va le créer. S’il existe déjà, WordPress obtiendra cette valeur. 

III. COMMENT SE SERVIR DES TRANSIENTS

L’utilisation brute des transients dans WordPress demande au moins de la technique. Si vous regardez le WordPress Codex, voici quelques superbes maillages. 

3.1. Insérer un transient 

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

La valeur transient est l’information qui va être stockée. Comme mentionné ci dessus cela peut devenir le résultat d’une fonction complexe, d’une requête vers un système externe.

3.2. Retablir un transient 

get_transient( $transient ); 

C’est là que la valeur de transient est récupérée et affichée. Cela permet de gagner du temps de chargement. 

3.3. Effacer un transient 

delete-transient( $transient); 

Utiliser ces lignes de code pour supprimer manuellement le transient. Notez que si le transient à une durée de vie, il sera automatiquement effacé.  L’effacement manuel du transient est utile lors de la mise à jour de la valeur de l’information étendue dans le transient. 

IV. QUAND EST CE QU’ON DOIT UTILISER UN TRANSIENT?

Tout d’abord, nous allons supposer que vous avez déjà mis en place un système de mise en cache différent. Et cela peut être de deux types : 

  • S’il était géré côté serveur, les transients seraient peu utiles. Cependant, si vous avez correctement installé Nginx, Varnish et même MemCached, tous les autres systèmes de mise en cache ne seront pas très efficaces pour vos visiteurs car le contenu est déjà mis en cache par le serveur.  
  • Par exemple, si les transients sont plus utiles lorsque les utilisateurs génèrent des caches à l’aide de plugins tels que WP-Super Cache ou W3 Total Cache. 

Quel que soit le système de mise en cache du site web, il ne peut pas être remplacé par des transients. En pratique, il existe deux scénarios où il est fortement recommandé de les utiliser : 

  • Le même contenu apparaîtra sur plusieurs (commentaires récents, listes de blogs,etc.). Cela limite le calcul d’une même donnée.  
  • Vous utilisez le contenu d’un site web externe. Vous allez ensuite réduire les requêtes DNS et l’absorption de bande passante et d’API de Twitter, Facebook, etc…

Enfin, c’est là que les transients fonctionnent vraiment. Lors de l’utilisation de données externes comme Twitter, les transients offrent de réels gains de performances en évitant plusieurs requêtes supplémentaires.  Le transient peut mettre en cache pendant 10 mn. Ainsi, votre site n’envoie que 6 requêtes par heure au serveur de twitter tout en restant dynamique et respectif. 

V. BIEN EXPLOITER LES TRANSIENTS DE WORDPRESS

Par conséquent, ne définissez pas de date d’expiration si vous savez que la donnée calculée ne va jamais connaître une modification. L’autre scénario consiste à se demander quand arrêter d’utiliser le transient. Si vous le créez et que vous ne l’utilisez plus, il restera inutilement dans votre base de données.  

Selon le nombre de plugins que vous avez installés puis désinstallés, ou le changement de vos thèmes, vous pouvez avoir des dizaines de transients inutiles dans le tableau option de WordPress. Par conséquent, il doit être nettoyé un peu. Peut être, nous avons utilisé l’astuce suivante pour supprimer 1,4 Mo de données indésirables. 

Dans un premier temps, vous devez définir combien de temps il faut pour que les différents paniers WordPress soient vides (articles, commentaires, etc.). Le code et le plugin sont en fait portés sur cette fonctionnalité pour effacer les transients expirés. Il est défini en ajoutant la ligne qui suit au fichier wp-config.php se trouvant à la racine de votre site web : 

define(‘EMPTY_TRASH_DAYS’, 3); 

Vous pouvez aussi supprimer immédiatement les transients indésirables en changeant wp_scheduled_delete par init. Cependant, gardez à l’esprit que le code s’exécutera à chaque chargement de page sur votre site. Par conséquent, vous devez quitter init juste le temps de recharge l’une des pages afin de nettoyer les transients actuels et réinitialiser la valeur wp_schedule_delete à la place.