Toutes les options sont-elles chargées en mémoire à chaque demande?


25

Toutes les variables d'options sont-elles extraites de la base de données et chargées dans le cache à chaque demande?

Réponses:


24

Oui, en quelque sorte. Lorsque l' get_optionappel est effectué, WordPress exécute une fonction appelée wp_load_alloptions, qui saisit une copie en cache de toutes les options chargées automatiquement ou charge toutes ces options dans le cache. wp_load_alloptionsRetourne ensuite un tableau de toutes les options chargées automatiquement. Si votre option est chargée automatiquement (spécifiée lorsque vous utilisez la add_optionfonction), elle fera partie de ce tableau et sera renvoyée.

Si votre option n'est pas chargée automatiquement, WordPress recherche ensuite dans le cache spécifiquement pour cette option et renvoie la valeur si elle est là. Si cela échoue, le dernier recours consiste à accéder à la base de données, à récupérer la valeur, à lui attribuer le cache, puis à la renvoyer.

Enfin, si aucune option n'est trouvée (par exemple, le nom de l'option n'était pas valide), WordPress stocke le nom de cette option dans un tableau en cache appelé notoptions. Si des appels ultérieurs à la non-option sont effectués, WP vérifie d'abord le tableau notoptions afin de ne pas perdre de temps à rechercher quelque chose qui n'est pas là.

Si vous craignez d'appeler get_optionplusieurs fois par chargement de page, ne le soyez pas. WordPress mettra en cache la valeur de l'option après le premier get_optionappel, qu'il soit ou non chargé automatiquement.

Consultez la source pourget_option voir ce qui se passe.


3

Non,

seules les options spécifiquement chargées avec le chargement automatique défini sur true

Voir http://codex.wordpress.org/Function_Reference/add_option

Donc, si c'est une option qui est nécessaire sur chaque page, lorsque vous l'ajoutez à la base de données, définissez autoload = true.

Après cela, utilisez simplement get_option normalement - wp gérera le cache, etc.


1
WP gère la mise en cache indépendamment du chargement automatique.
chrisguitarguy

0

Oui,

Il n'est pas nécessaire de définir le chargement automatique sur oui / vrai. Il est défini sur yes par défaut: http://codex.wordpress.org/Function_Reference/add_option - dernier paramètre de fonction ($ autoload):

Cette option doit-elle être chargée automatiquement par la fonction wp_load_alloptions () (place les options dans le cache d'objets à chaque chargement de page)? Valeurs valides: oui ou non. Par défaut: oui

Cependant, si vous le définissez sur non, l'option ne sera pas mise en cache.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.