Le fragment caching avec W3 Total Cache

Utiliser le fragment caching pour optimiser l’affichage des informations sur votre WordPress.

Ecrit le 29 septembre 2011
10 commentaires

Un système de cache est très pratique pour améliorer les performances générales de votre site, pour autant, il est parfois utile d’avoir des informations « fraiches », capables de passer outre le cache, comme un compteur de clics. Le fragment caching est là pour ça, et W3 Total Cache sait le gérer.

Le fragment caching n’est pas forcément quelque chose dont on a besoin sur son site. Dans le cas de 4h18, je n’ai pas d’informations qui nécessitent l’utilisation de cette technique.

Afficher une information en temps réel

J’ai dû y avoir recours pour l’un de mes clients, dont le trafic dépasse les 16.000 visiteurs unique par jour, avec un nombre de pages vues par jour qui fait tout péter : 600 milles !

Forcément, dans ces conditions assez extrêmes, il est impératif de booster WordPress. Je ne vais pas revenir sur l’éventail de technique à mettre en œuvre pour optimiser WordPress. Nous allons nous concentrer sur le fragment caching.

Dans le cas de mon client, ses pages affichent un compteur de pages vues, visibles pour tous les visiteurs. Le soucis, c’est qu’avec un plugin de cache, ce compteur n’est plus rafraichis en temps réel. Et l’internaute aura une information faussée.

C’est là que le fragment caching intervient. En faisant sortir la fonction du compteur du cache, nous avons la possibilité d’afficher un compteur qui se rafraichis à chaque rechargement de page, ce qui est son comportement normal.

Le découpage de la page

Dans le schéma ci-après, imaginons que je souhaite sortir du cache les blocs en vert.

Template de fragment classique

Template d'utilisation du fragment caching

Partons du principe que j’ai des compteurs divers et variés qui doivent s’afficher dans le header et le footer de l’article. Avec système de cache, ces compteurs n’afficheront pas les information sen temps réel.

Nous allons donc cacher l’intégralité de la page puis sortir du cache notre header et notre footer. Ce que vous visualisez en gris sur le template représente les blocs qui vont être cachés.

Le code avec W3 Total Cache

Pour sortir une portion de code ou une page, W3 Total Cache met plusieurs options à notre disposition.

Exemple 1 :

<!-- mfunc any PHP code --><!-- /mfunc -->

Exemple 2 :

<!-- mfunc -->any PHP code<!-- /mfunc -->

Exemple 3 :

<!--MFUNC -->
echo rand();
<!--/mfunc -->

Exemple 4 :

<!-- mclude path/to/file.php --><!-- /mclude -->

Exemple 5 :

<!-- mclude -->path/to/file.php<!-- /mclude -->

Dans mon cas, j’ai réussis à faire fonctionner ces 4 exemples uniquement sur Firefox. Avec Chrome et Internet Explorer 9, j’ai eu le droit à une belle erreur 500.

La seconde solution

W3 Total Cache met à notre disposition une série de fonctions, qui dans le cas présent ont parfaitement fonctionnées avec n’importe quel navigateur.

define('DONOTCACHEPAGE', true); Sortir une page donnée du cache.
define('DONOTCACHEDB', true); Désactiver le cache de base de données pour une page.
define('DONOTMINIFY', true); Désactiver la minification pour une page donné.
define('DONOTCDN', true); Désactiver le C.D.N pour une page donnée.
define('DONOTCACHCEOBJECT', true); Désactiver le cache d'objet pour une page donnée.

Par l’exemple

Dans mon fichier principal, j’utilise la fonction get_template_part de wordpress (qui est en fait la fonction include de php).

<?php get_template_part('templatecount')?>

Ensuite, dans mon fichier templatecount.php, je place ce code.

<?php
define('DONOTCACHEPAGE', true); //permet de passer outre les caches
hitcount_increasehit(); //fonction d'un plugin X
$hits = hitcount_gethits(); // fonction lié au plugin
echo $hits; //affichage du compteur
?>

J’avoue avoir une préférence pour cette solution, qui permet d’avoir un code plus lisible. De plus, le fait de déporter dans un autre fichier le code à devoir faire passer au travers du cache me semble être plus cohérent.

Ainsi, nous pouvons donc désormais afficher des informations en temps réel, tout en ayant un site avec un système de cache performant.

Pour les moteurs, ça parle de :

  • w3 cache fragment
  • w3 total cacle

Et vous ?

Participez à l'aventure WordPress, et dites nous ce que vous pensez de ce CMS
Vous pouvez aussi nous dire pourquoi vous bloguez, d'où vous vient votre passion

Tout pour WordPress

Liens sponsorisés

Premium Themes

Relevanssi - Search everything!

Gravity Forms Plugin for WordPress