get_option( string $option, mixed $default = false )
Retourne une valeur d'option en fonction de son nom.
Paramètres
$option
(string)requisNom de l'option à retourner.
$default
(mixed)optionnelValeur par défaut à retourner si la valeur n'existe pas.
Valeur par défaut : false
Description / Informations supplémentaires
Si l'option n'existe pas ou n'a pas de valeur, la valeur retournée sera false. Ceci est utile pour vérifier s'il est nécessaire d'installer une option généralement utilisée pendant l'installation des options d'un plugin et tester si une mise à jour est requise.
Si l'option enregistrée a été sérializé, la valeur retournée sera désérializée.
Les valeurs scalaires seront retournées en tant que chaîne. On peut forcer le type d'une valeur de retour en utilisant le filtre option_{$option}
.
La liste des options utilisées nativement par WordPress : Référence des options
Retourne
(mixed) Valeur de l'option.
Déclaration et structure de la fonction get_option()
get_option()
est déclarée dans le fichier wp-includes/option.php
à la ligne 78 :
function get_option( $option, $default_value = false ) {
global $wpdb;
if ( is_scalar( $option ) ) {
$option = trim( $option );
}
if ( empty( $option ) ) {
return false;
}
/*
* Until a proper _deprecated_option() function can be introduced,
* redirect requests to deprecated keys to the new, correct ones.
*/
$deprecated_keys = array(
'blacklist_keys' => 'disallowed_keys',
'comment_whitelist' => 'comment_previously_approved',
);
if ( isset( $deprecated_keys[ $option ] ) && ! wp_installing() ) {
_deprecated_argument(
__FUNCTION__,
'5.5.0',
sprintf(
/* translators: 1: Deprecated option key, 2: New option key. */
__( 'The "%1$s" option key has been renamed to "%2$s".' ),
$option,
$deprecated_keys[ $option ]
)
);
return get_option( $deprecated_keys[ $option ], $default_value );
}
/**
* Filters the value of an existing option before it is retrieved.
*
* The dynamic portion of the hook name, `$option`, refers to the option name.
*
* Returning a value other than false from the filter will short-circuit retrieval
* and return that value instead.
*
* @since 1.5.0
* @since 4.4.0 The `$option` parameter was added.
* @since 4.9.0 The `$default_value` parameter was added.
*
* @param mixed $pre_option The value to return instead of the option value. This differs from
* `$default_value`, which is used as the fallback value in the event
* the option doesn't exist elsewhere in get_option().
* Default false (to skip past the short-circuit).
* @param string $option Option name.
* @param mixed $default_value The fallback value to return if the option does not exist.
* Default false.
*/
$pre = apply_filters( "pre_option_{$option}", false, $option, $default_value );
/**
* Filters the value of all existing options before it is retrieved.
*
* Returning a truthy value from the filter will effectively short-circuit retrieval
* and return the passed value instead.
*
* @since 6.1.0
*
* @param mixed $pre_option The value to return instead of the option value. This differs from
* `$default_value`, which is used as the fallback value in the event
* the option doesn't exist elsewhere in get_option().
* Default false (to skip past the short-circuit).
* @param string $option Name of the option.
* @param mixed $default_value The fallback value to return if the option does not exist.
* Default false.
*/
$pre = apply_filters( 'pre_option', $pre, $option, $default_value );
if ( false !== $pre ) {
return $pre;
}
if ( defined( 'WP_SETUP_CONFIG' ) ) {
return false;
}
// Distinguish between `false` as a default, and not passing one.
$passed_default = func_num_args() > 1;
if ( ! wp_installing() ) {
$alloptions = wp_load_alloptions();
if ( isset( $alloptions[ $option ] ) ) {
$value = $alloptions[ $option ];
} else {
$value = wp_cache_get( $option, 'options' );
if ( false === $value ) {
// Prevent non-existent options from triggering multiple queries.
$notoptions = wp_cache_get( 'notoptions', 'options' );
// Prevent non-existent `notoptions` key from triggering multiple key lookups.
if ( ! is_array( $notoptions ) ) {
$notoptions = array();
wp_cache_set( 'notoptions', $notoptions, 'options' );
} elseif ( isset( $notoptions[ $option ] ) ) {
/**
* Filters the default value for an option.
*
* The dynamic portion of the hook name, `$option`, refers to the option name.
*
* @since 3.4.0
* @since 4.4.0 The `$option` parameter was added.
* @since 4.7.0 The `$passed_default` parameter was added to distinguish between a `false` value and the default parameter value.
*
* @param mixed $default_value The default value to return if the option does not exist
* in the database.
* @param string $option Option name.
* @param bool $passed_default Was `get_option()` passed a default value?
*/
return apply_filters( "default_option_{$option}", $default_value, $option, $passed_default );
}
$row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", $option ) );
// Has to be get_row() instead of get_var() because of funkiness with 0, false, null values.
if ( is_object( $row ) ) {
$value = $row->option_value;
wp_cache_add( $option, $value, 'options' );
} else { // Option does not exist, so we must cache its non-existence.
$notoptions[ $option ] = true;
wp_cache_set( 'notoptions', $notoptions, 'options' );
/** This filter is documented in wp-includes/option.php */
return apply_filters( "default_option_{$option}", $default_value, $option, $passed_default );
}
}
}
} else {
$suppress = $wpdb->suppress_errors();
$row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", $option ) );
$wpdb->suppress_errors( $suppress );
if ( is_object( $row ) ) {
$value = $row->option_value;
} else {
/** This filter is documented in wp-includes/option.php */
return apply_filters( "default_option_{$option}", $default_value, $option, $passed_default );
}
}
// If home is not set, use siteurl.
if ( 'home' === $option && '' === $value ) {
return get_option( 'siteurl' );
}
if ( in_array( $option, array( 'siteurl', 'home', 'category_base', 'tag_base' ), true ) ) {
$value = untrailingslashit( $value );
}
/**
* Filters the value of an existing option.
*
* The dynamic portion of the hook name, `$option`, refers to the option name.
*
* @since 1.5.0 As 'option_' . $setting
* @since 3.0.0
* @since 4.4.0 The `$option` parameter was added.
*
* @param mixed $value Value of the option. If stored serialized, it will be
* unserialized prior to being returned.
* @param string $option Option name.
*/
return apply_filters( "option_{$option}", maybe_unserialize( $value ), $option );
}
Fonctions utilisées par get_option()
wp_installing()
Vérifie ou met Wordpress en mode installation.
wp_cache_get()
Retourne le contenu du cache par clés et groupes.
wp_cache_add()
Ajoute des données au cache, si la clé du cache n'existe pas.
wp_cache_set()
Sauvegarde les données dans le cache.
__()
Retourne la traduction d'un texte.
untrailingslashit()
Supprime les slashes et anti-slashes de la limite droite du mot, s'ils existent.
_deprecated_argument()
Marque l'argument d'une fonction comme déprécié et informe quand il a été utilisé.
maybe_unserialize()
Désérialize des données seulement si elles ont été sérializées au préalable.
apply_filters()
Appel les fonctions qui ont été attaché à un filtre (hook).
wp_load_alloptions()
Charge et met en cache toutes les options auto-chargées si disponible ou toutes les options.
get_option()
Retourne une valeur d'option en fonction de son nom.
Hooks utilisés par get_option()
pre_option_option
Filtre la valeur d'une option existante avant qu'elle ne soit retournée.
default_option_option
Filtre la valeur par défaut d'une option.
option_option
Filtre la valeur d'une option existante.
Où est utilisée la fonction get_option()
dans le CMS WordPress
Exemples
$no_exists_value = get_option( 'no_exists_value' );
var_dump( $no_exists_value ); /* outputs false */
$no_exists_value = get_option( 'no_exists_value', 'default_value' );
var_dump( $no_exists_value ); /* outputs 'default_value' */
if( ($option = get_option('option_name')) !== false ){
/* code ici... */
}
return apply_filters( "option_{$option}", $value, $option );
Sources
Codex WordPress : get_option()
Autres fonctions dans le même fichier : wp-includes/option.php