Rendimiento con carga automática y la tabla de opciones

9

Estoy jugando con la columna autoload de la tabla options . No encontré mucha información sobre cómo se utilizan los valores cargados automáticamente. Probé un print_r($GLOBALS) y vi que las opciones de carga automática están almacenadas en $GLOBALS['wp_object_cache']->cache['options']['alloptions'] .

¿Hay otra forma de acceder a esas variables?

Supongamos que necesito acceder a una opción my_option , que se configuró en carga automática, varias veces en diferentes plantillas (por ejemplo, una vez en header.php , una vez en footer.php ), ¿qué método se recomienda?

  1. ¿Está bien que lo recupere de la matriz $GLOBALS (dado que el valor ya está aquí)?
  2. ¿Debo usar get_option('my_option') una vez y globalizar la variable nuevamente
  3. Use get_option('my_option') cada vez (lo que no veo el punto de hacer)
  4. Algo más
pregunta RRikesh 30.01.2013 - 13:58

1 respuesta

18
  

No encontré mucha información sobre cómo son los valores cargados automáticamente   utilizado.

No hay un caso especial para las opciones cargadas automáticamente, se utilizan de la misma manera que las opciones normales, pero permite averiguar qué significa la columna autoload de la tabla options . Esta columna determina si necesitamos buscar una opción en la etapa de inicialización de una solicitud o deberíamos buscar una opción solo a pedido.

¿Pero cuándo ocurre esta carga automática y qué función cumple? Todas las opciones autoload se cargan y almacenan en la memoria caché mediante la función wp_load_alloptions , a la que se llama mediante la función is_blog_installed al comienzo de cada solicitud HTTP, manejada por WP.

Permite resumir: la opción de carga automática es la misma opción, pero se carga al comienzo del procesamiento de la solicitud HTTP por WP.

  

Supongamos que necesito acceder a una opción ... ¿qué método se recomienda?

  1. Es un mal enfoque recuperarlo de $GLOBALS directamente, use get_option en su lugar
  2. Globalizar las variables personalizadas no es bienvenido y se recomienda hacerlo lo menos posible
  3. Desde mi punto de vista, es la mejor opción para ti
  4. Incluso no pienses en otra cosa :)

¿Por qué usar la función get_option cada vez que es la mejor opción? Porque:

  1. El primero y el más importante porque : puede estar seguro de que devolverá un valor actualizado cada vez que lo llame.
  2. Lo almacenará en caché para su reutilización futura.
  3. Permite que otros complementos y temas conecten tu opción al enganchar option_optionname filter.
  4. Obtendrá una opción si aún no está cargada.
respondido por el Eugene Manuilov 30.01.2013 - 15:16

Lea otras preguntas en las etiquetas