Description

Les champs de méta-donné de poste sont appelés "champs personnalisés" dans l"administration WordPress.

Si vous voulez mettre à jour une méta-donnée, utilisez update_post_meta(). Cette fonction peut aussi être utilisée pour ajouter un champ de méta-donné si sa clé n'existe pas.

Comme les valeurs de méta sont passées à la fonction stripslashes() il faut faire attention au contenu échappé avec des caractères \ (anti-slashes). Pour en savoir plus sur ce comportement et sur un exemple de contournement, voir la documentation de update_post_meta().

Il est intéressant de noter que WordPress ne montrera pas les champs personnalisés dont la clé commence par un underscore '_' dans la liste des champs personnalisés dans l'écran d'édition d'un poste (dans l'administration) ni avec la fonction the_meta().

Il faut aussi noter que si $meta_value est un tableau elle n'apparaîtra pas non plus dans la liste des champs personnalisés.

Paramètres

$post_id

(int) (Requis) Id du poste.

$meta_key

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

$meta_value

(mixed) (Requis) Valeur de la méta-donnée. Doit être sérialisable si non scalaire.

$unique

(bool) (Optionnel) False pour qu'une clé identique ne soit pas ajoutée à un poste déjà lié à une méta-donnée qui possède la même clé.

Valeur par défaut : false

Retourne

(int | false) Id de la méta-donnée si succès, false autrement.

Structure de la fonction add_post_meta()

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

function add_post_meta( $post_id, $meta_key, $meta_value, $unique = false ) {
    // Make sure meta is added to the post, not a revision.
    $the_post = wp_is_post_revision( $post_id );
    if ( $the_post ) {
        $post_id = $the_post;
    }

    return add_metadata( 'post', $post_id, $meta_key, $meta_value, $unique );
}

Fonctions utilisées par add_post_meta()

wp_is_post_revision()

Détermine si un poste spécifié est une révision.

add_metadata()

Ajoute une méta-donnée pour un objet spécifié.

Où trouver la fonction add_post_meta() dans le CMS Wordpress

Exemples

Usage par défaut :
add_post_meta( 68, 'my_key', 47 );
Ajouter un champ personnalisé unique qui n'apparaîtra pas dans la liste des champs personnlisés :
add_post_meta( 68, '_color', 'red', true );
Ajouter un nouveau champ personnalisé si la clé n'existe pas sinon mettre à jour :
if ( ! add_post_meta( 7, 'fruit', 'banana', true ) ) { 
   update_post_meta ( 7, 'fruit', 'banana' );
}

Sources

Codex Wordpress : add_post_meta()

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

Retour