sanitize_meta( string $meta_key, mixed $meta_value, string $object_type, string $object_subtype = '' )
Nettoie une valeur de méta-donnée.
Paramètres
$meta_key(string)requisClé de la méta-donnée.
$meta_value(mixed)requisValeur de la méta-donnée à nettoyer.
$object_type(string)requisType d'objet de la méta-donnée. Accepte 'post', 'comment', 'term', 'user' ou tout autre type d'objet associé à une table de méta-donnée.
$object_subtype(string)optionnelSous-type de $object_type.
Valeur par défaut : ''
Description / Informations supplémentaires
Cette fonction applique des filtres qui peuvent être attachés pour exécuter des procédures spécifiques de nettoyage pour un type de méta-donnée ou une clé particulière. Le filtre attaché est de la forme 'sanitize_{$meta_type}_meta_{$meta_key}'.
Cette fonction est appelée par add_metadata() et update_metadata().
Retourne
(mixed) $meta_value nettoyée.
Déclaration et structure de la fonction sanitize_meta()
sanitize_meta() est déclarée dans le fichier wp-includes/meta.php à la ligne 1315 :
function sanitize_meta( $meta_key, $meta_value, $object_type, $object_subtype = '' ) {
if ( ! empty( $object_subtype ) && has_filter( "sanitize_{$object_type}_meta_{$meta_key}_for_{$object_subtype}" ) ) {
/**
* Filters the sanitization of a specific meta key of a specific meta type and subtype.
*
* The dynamic portions of the hook name, `$object_type`, `$meta_key`,
* and `$object_subtype`, refer to the metadata object type (comment, post, term, or user),
* the meta key value, and the object subtype respectively.
*
* @since 4.9.8
*
* @param mixed $meta_value Metadata value to sanitize.
* @param string $meta_key Metadata key.
* @param string $object_type Type of object metadata is for. Accepts 'post', 'comment', 'term', 'user',
* or any other object type with an associated meta table.
* @param string $object_subtype Object subtype.
*/
return apply_filters( "sanitize_{$object_type}_meta_{$meta_key}_for_{$object_subtype}", $meta_value, $meta_key, $object_type, $object_subtype );
}
/**
* Filters the sanitization of a specific meta key of a specific meta type.
*
* The dynamic portions of the hook name, `$meta_type`, and `$meta_key`,
* refer to the metadata object type (comment, post, term, or user) and the meta
* key value, respectively.
*
* @since 3.3.0
*
* @param mixed $meta_value Metadata value to sanitize.
* @param string $meta_key Metadata key.
* @param string $object_type Type of object metadata is for. Accepts 'post', 'comment', 'term', 'user',
* or any other object type with an associated meta table.
*/
return apply_filters( "sanitize_{$object_type}_meta_{$meta_key}", $meta_value, $meta_key, $object_type );
}
Fonctions utilisées par sanitize_meta()
has_filter()Vérifie si un filtre a été enregistré pour un hook.
apply_filters()Appel les fonctions qui ont été attaché à un filtre (hook).
Hooks utilisés par sanitize_meta()
sanitize_object_type_meta_meta_key_for_object_subtypeFiltre le nettoyage d'une clé de méta-donnée spécifique d'un type d'objet et d'un sous-type spécifique.
sanitize_object_type_meta_meta_keyFiltre le nettoyage d'une clé de méta-donnée spécifique d'un type d'objet spécifique.
Où est utilisée la fonction sanitize_meta()
dans le CMS WordPress
Exemple
$clean_value = sanitize_meta( 'birth-year', $user_input, 'user' );
function wpdocs_sanitize_birth_year_meta( $year ) {
$now = date( 'Y' );
$then = $now - 115; // Pas d'utilisateurs plus âgés que 115.
if ( $then > $year || $year > $now ) {
wp_die('Entrée invalide, retourner et recommencer.');
}
return $year;
}
add_filter( 'sanitize_user_meta_birth-year', 'wpdocs_sanitize_birth_year_meta' );
Sources
Codex WordPress : sanitize_meta()
Autres fonctions dans le même fichier : wp-includes/meta.php