Description

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().

Paramètres

$meta_key

(string) (Requis) Clé de la méta-donnée.

$meta_value

(mixed) (Requis) Valeur de la méta-donnée à nettoyer.

$object_type

(string) (Requis) Type 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) (Optionnel) Sous-type de $object_type.

Valeur par défaut : ''

Retourne

(mixed) $meta_value nettoyée.

Structure de la fonction sanitize_meta()

Définie dans le fichier wp-includes/meta.php à la ligne 1191 :

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 et Hooks utilisés par sanitize_meta()

sanitize_{$object_type}_meta_{$meta_key}_for_{$object_subtype}

Filtre 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_key}

Filtre le nettoyage d'une clé de méta-donnée spécifique d'un type d'objet spécifique.

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).

Où trouver 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

Retour