Dans la version 6.1 de WordPress, un nouveau système de cache est mis en place sur les WPQueries.

Les résultats d’une requête sont donc mis en cache et si la même requête est effectuée, le résultat en cache est retourné au lieu d’effectuer une nouvelle fois la query.

Évidemment, cela donne une grosse montée de performance puisque l’on soulage la base de données et les réponses sont logiquement plus rapides.

Et donc, le cache persistant (in-memory) reste tant que la requête n’est pas invalidé. Soit par une mise à jour d’un élement, soit avec la fonction clean_post_cache

Seulement en mode développement en local, vous avez peut-être besoin de rafraîchir les requêtes.

Voici donc une méthode à utiliser dans votre fichier functions.php si vous souhaitez désactiver le cache en mode développement local.

/** disable caching wp query */
function disable_caching($wp_query)
{
  // si vous utilisez WP_ENV, sinon il faut supprimer la condition 
  if (WP_ENV === 'development') {
    $wp_query->query_vars['cache_results'] = false;
  }
}
add_action('parse_query', 'disable_caching');

Différence avec et sans cache

Évidemment, l’exemple ci-dessous vient du site WP Performance. Site qui utilise très peu de plugins. L’utilisation de plugins peut faire considérablement augmenter le nombre de requêtes.

Avec le cache, 50 requêtes.

Sans le cache, 63 requêtes dont 10 dupliquées.

,