Rendimiento con carga automática y la tabla de opciones


12

Estoy jugando con la autoloadcolumna de la optionsmesa. No encontré mucha información sobre cómo se usan los valores de carga automática. Intenté con print_r($GLOBALS)y vi que las opciones cargadas automáticamente están almacenadas $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ó para cargar automáticamente, varias veces en diferentes plantillas (por ejemplo header.php, una vez, una vez footer.php), ¿qué método se recomienda?

  1. ¿Está bien que lo recupere de la $GLOBALSmatriz (ya que el valor ya está aquí)
  2. ¿Debo usar get_option('my_option')una vez y globalizar la variable nuevamente
  3. Usar get_option('my_option')cada vez (que no veo el punto de hacer)
  4. Algo más

Respuestas:


23

No encontré mucha información sobre cómo se usan los valores de carga automática.

No hay un caso especial para las opciones cargadas automáticamente, se usan de la misma manera que las opciones normales, pero descubramos qué significa la autoloadcolumna de la optionstabla. Esta columna determina si necesitamos obtener una opción en la etapa de inicialización de una solicitud o si debemos obtener una opción solo a pedido.

Pero cuando ocurre esta carga automática y ¿qué función tiene? Todas las opciones de carga automática se cargan y almacenan en caché por wp_load_alloptionsfunción, que se llama por is_blog_installedfunción al comienzo de cada solicitud HTTP, manejada por WP.

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

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

  1. Es un mal enfoque recuperarlo $GLOBALSdirectamente, usar get_optionen su lugar
  2. Globalizar 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 get_optionfunción cada vez 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 futura reutilización.
  3. Permite que otros complementos y temas enganchen su opción al enganchar el option_optionnamefiltro.
  4. Buscará una opción si aún no está cargada.

1
+1 respuesta muy informativa. Nunca escuché sobre el gancho de la opción antes :)
RRikesh

@rrikesh de nada, espero que explique lo suficientemente bien
Eugene Manuilov
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.