web-dev-qa-db-fra.com

Performance avec autoload et la table d'options

Je joue avec la colonne autoload de la table options. Je n'ai pas trouvé beaucoup d'informations sur la manière dont les valeurs autoloadées sont utilisées. J'ai essayé un print_r($GLOBALS) et j'ai vu que les options autoloaded sont stockées dans $GLOBALS['wp_object_cache']->cache['options']['alloptions'].

Y a-t-il un autre moyen d'accéder à ces variables?

Supposons que je doive accéder à une option my_option définie pour le chargement automatique plusieurs fois dans différents modèles (par exemple, une fois dans header.php, une fois dans footer.php), quelle méthode est recommandée?

  1. Puis-je le récupérer dans le tableau $GLOBALS (car la valeur est déjà ici)
  2. Dois-je utiliser get_option('my_option') une fois et globaliser la variable à nouveau
  3. Utilisez get_option('my_option') à chaque fois (ce que je ne vois pas l'intérêt de faire)
  4. Autre chose
9
RRikesh

Je n'ai pas trouvé beaucoup d'informations sur la manière dont les valeurs autoloadées sont utilisées.

Il n'y a pas de cas particulier pour les options autoloadées, elles sont utilisées de la même manière que les autres options ordinaires, mais nous allons comprendre ce que la colonne autoload de la table options signifie. Cette colonne détermine si nous devons extraire une option lors de l’initialisation d’une demande ou devrions-nous extraire une option uniquement à la demande.

Mais quand ce chargement automatique se produit et quelle est sa fonction? Toutes les options autoload sont chargées et mises en cache par la fonction wp_load_alloptions, appelée par la fonction is_blog_installed au début de chaque requête HTTP, gérée par WP.

Résumons: l'option autoloaded est la même option, mais elle est chargée au début du traitement de la requête HTTP par WP.

Supposons que je doive accéder à une option ... quelle méthode est recommandée?

  1. C'est une mauvaise approche pour le récupérer directement de $GLOBALS, utilisez plutôt get_option
  2. Globaliser les variables personnalisées n'est pas la bienvenue et il est recommandé de le faire le moins possible
  3. De mon point de vue c'est la meilleure option pour vous
  4. Même ne pense pas à autre chose :)

Pourquoi utiliser la fonction get_option à chaque fois est la meilleure option? Parce que:

  1. Le premier et le plus important car : vous pouvez être sûr qu'il retournera une valeur actualisée, chaque fois que vous l'appelez.
  2. Il le mettra en cache pour une réutilisation future.
  3. Cela permet à d'autres plugins et thèmes de suspendre votre option en connectant le filtre option_optionname.
  4. Il ira chercher une option si elle n'est pas encore chargée.
18
Eugene Manuilov