Paramètre

$force_cache(bool)optionnel

Pour forcer une mise à jour du cache local provenant du cache persistant.

Valeur par défaut : false

Retourne

(array) Liste de toutes les options.

Déclaration et structure de la fonction wp_load_alloptions()

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 IN ( '" . implode( "', '", esc_sql( wp_autoload_values_to_autoload() ) ) . "' )" );

        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 );
}
apply_filters()

Appel les fonctions qui ont été attaché à un filtre (hook).

wp_installing()

Vérifie ou met Wordpress en mode installation.

is_multisite()

Vérifie si le multisite est autorisé.

wp_cache_get()

Retourne les contenus du cache en donnant la clé et le groupe.

esc_sql()

Échappe les données à utiliser dans une requête MySQL.

wp_autoload_values_to_autoload()

Renvoie les valeurs qui déclenchent le chargement automatique à partir de la table d'options.

wp_cache_add()

Ajoute des données au cache si la clé du cache n'existe pas.

pre_wp_load_alloptions

Filtre le tableau de toutes les options avant qu'il ne soit rempli.

pre_cache_alloptions

Filtre toutes les options avant de les mettre en cache.

alloptions

Filtre toutes les options après les avoir retourné.

Où est utilisée la fonction wp_load_alloptions() dans le CMS WordPress

Exemple

Extraire le nom des options de tous les transients :
$all_options = wp_load_alloptions();
$my_options  = array();
 
foreach ( $all_options as $name => $value ) {
    if ( stristr( $name, '_transient' ) ) {
        $my_options[ $name ] = $value;
    }
}
 
print_r( $my_options );

Sources

Codex WordPress : wp_load_alloptions()

Autres fonctions dans le même fichier : wp-includes/option.php

Retour