Pregunta:
¿Todas las variables de opciones se obtienen de la base de datos y se cargan en la memoria caché en cada solicitud?
Respuesta:
Sí, más o menos. Cuando se realiza la llamada get_option
, WordPress ejecuta una función llamada wp_load_alloptions
, que wp_load_alloptions
una copia en caché de todas las opciones cargadas automáticamente o carga todas esas opciones en el caché. Luego, wp_load_alloptions
devuelve una matriz de todas las opciones wp_load_alloptions
automáticamente. Si su opción se carga automáticamente (se especifica cuando usa la función add_option
), será parte de esta matriz y será devuelta.
Si su opción no se carga automáticamente, WordPress busca en el caché específicamente esa opción y devuelve el valor si está allí. Si eso falla, la alternativa final es ir a la base de datos, buscar el valor, configurarlo en la 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 opción non-option, WP verifica primero la matriz notoptions para no perder el tiempo buscando algo que no está allí.
Si le preocupa llamar a get_option
varias veces por carga de página, no lo esté. WordPress almacenará en caché el valor de la opción después de la primera llamada a get_option
independientemente de si se carga automáticamente o no.
Consulte la fuente de get_option
para ver qué está pasando.