¿Todas las opciones se cargan en la memoria en cada solicitud?

25

¿Todas las variables de opciones se obtienen de la base de datos y se cargan en la memoria caché en cada solicitud?

rsman
fuente

Respuestas:

24

Sí, más o menos. Cuando se realiza la get_optionllamada, WordPress ejecuta una función llamada wp_load_alloptions, que toma una copia en caché de todas las opciones cargadas automáticamente o carga todas esas opciones en el caché. Luego wp_load_alloptionsdevuelve una matriz de todas las opciones cargadas automáticamente. Si su opción se carga automáticamente (especificada cuando usa la add_optionfunción), formará parte de esta matriz y se devolverá.

Si su opción no se carga automáticamente, WordPress busca específicamente en esa caché esa opción y devuelve el valor si está allí. Si eso falla, el último recurso es ir a la base de datos, buscar el valor, configurarlo en la memoria caché y luego devolverlo.

Finalmente, si no se encuentra ninguna opción (por ejemplo, el nombre de la opción no era válido), WordPress almacena el nombre de esa opción en una matriz en caché llamada notoptions. Si se realizan llamadas posteriores a la no opción, WP verifica primero la matriz de opciones para que no pierda tiempo buscando algo que no está allí.

Si le preocupa llamar get_optionvarias veces por carga de página, no lo haga. WordPress almacenará en caché el valor de la opción después de la primera get_optionllamada, independientemente de si se carga automáticamente o no.

Echa un vistazo a la fuente paraget_option ver qué está pasando.

chrisguitarguy
fuente
3

No,

solo las opciones que se cargan específicamente con carga automática configuradas en verdadero

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

Entonces, si es una opción que se necesita en cada página, cuando la agregue a la base de datos, establezca autoload = true.

Después de eso, simplemente use get_option normalmente: wp manejará el almacenamiento en caché, etc.

anmari
fuente
1
WP maneja el almacenamiento en caché independientemente de la carga automática.
chrisguitarguy 05 de
0

Sí,

No es necesario configurar la carga automática en sí / verdadero. Está establecido en sí de forma predeterminada: http://codex.wordpress.org/Function_Reference/add_option - último parámetro de función ($ autoload):

¿Debería esta opción ser cargada automáticamente por la función wp_load_alloptions () (coloca las opciones en el caché de objetos en cada carga de página)? Valores válidos: sí o no. Predeterminado: sí

Sin embargo, si lo configura en no, la opción no se guardará en caché.

Toni Petrov
fuente