J'apprends/ paramètres de mise en cache et j'ai essayé ceci dans le modèle single.php
:
echo count($wp_object_cache->cache['posts']);
$query = new \WP_Query([
'post_type' => 'post',
'cache_results' => false,
'posts_per_page' => 5,
'ignore_sticky_posts' => true
]);
echo '<br>' . count($wp_object_cache->cache['posts']);
Le résultat:
3
7
D'une manière ou d'une autre, le paramètre cache_results
n'a pas fonctionné. Est-ce que je manque quelque chose?
J'utilise:
Le résultat du tableau posts dans WP_Query
est associé à get_post()
( ici et ici ) avec:
$this->posts = array_map( 'get_post', $this->posts );
et cela semble ajouter des publications auobject cachemême si l'argument cache_results
est défini sur false
dans WP_Query
.
Dans la fonction get_post()
( here ), nous avons:
$_post = WP_Post::get_instance( $post );
pour le cas où $post
n'est ni un WP_Post
ni une instance d'objet.
La WP_Post::get_instance
méthode contient les appels wp_cache_get()
et wp_cache_set()
.
Cela pourrait donc expliquer le comportement que vous voyez dans votre exemple.