Créer différents fichiers de cache avec des cookies dynamiques et obligatoires

Dans ce guide

Certains plugins peuvent utiliser des cookies pour définir des informations dynamiques sur un utilisateur et différencier le contenu en conséquence. 

Par exemple, un plugin tiers peut placer un cookie pour détecter et stocker votre pays, afin de vous montrer le contenu dans votre langue spécifique. Un problème de mise en cache peut survenir si le plugin tente de modifier le contenu de manière dynamique à l'aide de PHP.  PHP ne fonctionne pas sur une page mise en cache, donc même si le cookie est correctement placé, le contenu ne changera pas et cela entraînera l'affichage d'un contenu incorrect.

L'idéal serait que le plugin tiers utilise le JavaScript pour gérer cela puisqu'il s'exécutera sur une page en cache, mais lorsque ce n'est pas possible, il y a 2 filtres utiles dans WP Rocket que les développeurs peuvent utiliser.

Des filtres pour les développeurs

Si vous êtes le développeur du plugin, vous pouvez les utiliser dans votre code pour créer une compatibilité avec notre plugin. Ils peuvent être utilisés simultanément si nécessaire, ou l'un ou l'autre peut être utilisé seul, selon votre situation.

  • rocket_cache_dynamic_cookies
    Celui-ci crée un fichier cache pour chaque valeur d'un cookie spécifié.
  • rocket_cache_mandatory_cookies
    Celui-là empêche la mise en cache jusqu'à ce que le cookie spécifié soit placé

Un exemple du fonctionnement de ces filtres peut être observé dans notre compatibilité avec l’extension Aelia Currency Switcher..

Cela produit des fichiers de cache comme les suivants, avec la valeur du cookie ajoutée au nom du fichier :

Un plugin d'aide pour nos clients

Si vous êtes l'utilisateur d'un plugin qui utilise des cookies pour des informations dynamiques, vous pouvez créer la compatibilité avec WP Rocket sur votre site en modifiant le plugin d'aide ci-dessous : 

📥   Télécharger (.zip):  WP Rocket | Cache Dynamic Cookie
Développeurs : vous trouverez le code de ce plugin sur GitHub.

Comment l’utiliser ?

1. Téléchargez le plugin d'aide, dézippez-le et ouvrez le fichier PHP dans un éditeur de texte.

2. Vous devez connaître le nom du cookie qui stocke les informations dynamiques. Vous pouvez le trouver dans les outils de développement de votre navigateur. Si vous n'êtes pas sûr de savoir comment faire, contactez le développeur du plugin et demandez-lui :)

Dans la capture d'écran ci-dessous, le nom du cookie est :  yith_woocompare_list

3. Placez le nom du cookie dans la ligne 21 du plugin.

Changez cette ligne:

define( 'WPROCKETHELPERS_CACHE_DYNAMIC_COOKIE', 'your-cookie-id-here' );

en :

define( 'WPROCKETHELPERS_CACHE_DYNAMIC_COOKIE', 'yith_woocompare_list' );

4. Zippez le plugin et installez-le/activez-le sur votre site.

Pourquoi la première visite ne reçoit-elle pas la page en cache ?

Si un cookie requis/obligatoire est défini par votre thème ou un plugin que vous avez installé, aucun cache ne sera servi tant que le cookie n'aura pas été placé dans le navigateur du visiteur.

Par exemple, si un cookie obligatoire est placé après le chargement de la première page (comme par exemple avec l’option de détection du navigateur de Polylang), le(s) fichier(s) mis en cache sera(ont) servi(s) lorsque l'utilisateur naviguera vers une autre page ou actualisera la page. Dans ce cas, les visiteurs du site obtiendront toujours une page non mise en cache lorsqu'ils visiteront le site pour la première fois (ou après avoir effacé les cookies de leur navigateur).

Cloudflare APO

Cloudflare APO n'est pas compatible avec les cookies dynamiques et obligatoires de WP Rocket, car APO ne peut pas servir différentes versions de cache basées sur différentes valeurs de cookies. Plus d'infos dans cet article.

Cela a-t-il répondu à votre question ? Merci pour votre retour :) Une erreur est survenue lors de l’envoi de votre retour. Veuillez réessayer plus tard.