WordPress Version: 6.2
/**
* Loads and caches all autoloaded options, if available or all options.
*
* @since 2.2.0
* @since 5.3.1 The `$force_cache` parameter was added.
*
* @global wpdb $wpdb WordPress database abstraction object.
*
* @param bool $force_cache Optional. Whether to force an update of the local cache
* from the persistent cache. Default false.
* @return array List of all options.
*/
function wp_load_alloptions($force_cache = false)
{
global $wpdb;
/**
* Filters the array of alloptions before it is populated.
*
* Returning an array from the filter will effectively short circuit
* wp_load_alloptions(), returning that value instead.
*
* @since 6.2.0
*
* @param array|null $alloptions An array of alloptions. Default null.
* @param bool $force_cache Whether to force an update of the local cache from the persistent cache. Default false.
*/
$alloptions = apply_filters('pre_wp_load_alloptions', null, $force_cache);
if (is_array($alloptions)) {
return $alloptions;
}
if (!wp_installing() || !is_multisite()) {
$alloptions = wp_cache_get('alloptions', 'options', $force_cache);
} else {
$alloptions = false;
}
if (!$alloptions) {
$suppress = $wpdb->suppress_errors();
$alloptions_db = $wpdb->get_results("SELECT option_name, option_value FROM {$wpdb->options} WHERE autoload = 'yes'");
if (!$alloptions_db) {
$alloptions_db = $wpdb->get_results("SELECT option_name, option_value FROM {$wpdb->options}");
}
$wpdb->suppress_errors($suppress);
$alloptions = array();
foreach ((array) $alloptions_db as $o) {
$alloptions[$o->option_name] = $o->option_value;
}
if (!wp_installing() || !is_multisite()) {
/**
* Filters all options before caching them.
*
* @since 4.9.0
*
* @param array $alloptions Array with all options.
*/
$alloptions = apply_filters('pre_cache_alloptions', $alloptions);
wp_cache_add('alloptions', $alloptions, 'options');
}
}
/**
* Filters all options after retrieving them.
*
* @since 4.9.0
*
* @param array $alloptions Array with all options.
*/
return apply_filters('alloptions', $alloptions);
}