Données du type de publication personnalisé


Parfois, les champs par défaut d’un type de publication personnalisé peuvent ne pas suffire, et vous devez stocker des données supplémentaires dans un type de publication personnalisé.

Heureusement, WordPress prend en charge ce que l’on appelle les métadonnées de publication, qui vous permettent de stocker des informations supplémentaires sur une publication.

Voyons comment utiliser les métadonnées de publication sur une publication ou un type de publication personnalisé.

Que sont les métadonnées de publication

Les métadonnées de publication permettent de stocker des informations supplémentaires sur une publication dans la base de données WordPress.

Les métadonnées de publication sont stockées dans la table postmeta sous forme de paires clé-valeur. Si vous consultez la table postmeta dans la base de données WordPress, vous verrez qu’elle comporte quatre colonnes : meta_id, post_id, meta_key et meta_value.

post_id est l’identifiant de la publication à laquelle les métadonnées sont associées. meta_key est le nom du champ de métadonnées et meta_value est sa valeur.

Ajout de métadonnées de publication

Vous pouvez ajouter des métadonnées à une publication à l’aide de la fonction add_post_meta. Cette fonction accepte trois paramètres : l’identifiant de la publication, le nom des métadonnées et leur valeur.

Supposons que vous souhaitiez ajouter un champ de métadonnées à une publication portant l’identifiant 1 et que vous souhaitiez stocker le lieu où la publication a été rédigée, à savoir London.

Vous pourriez utiliser le code suivant :

    add_post_meta( 1, 'location', 'London' );

Il existe d’autres fonctions pour travailler avec les métadonnées de publication, telles que update_post_meta, delete_post_meta et get_post_meta.

Vous pouvez en savoir plus à leur sujet et découvrir comment les utiliser dans des extensions sur la page Métadonnées du manuel du développeur d’extensions.

Le panneau Champs personnalisés

Ajouter des métadonnées de publication via du code est une possibilité, mais il est également possible de permettre aux administrateurs du site d’ajouter des métadonnées via l’interface d’administration de WordPress.

Une manière de procéder consiste à utiliser le panneau Champs personnalisés du type de publication.

Pour activer le panneau Champs personnalisés, vous devez d’abord vous assurer que votre type de publication personnalisé prend en charge les métadonnées.

Pour ce faire, vous devez ajouter ou mettre à jour l’argument supports afin d’inclure la prise en charge de custom-fields.

Ensuite, lors de la modification d’un type de publication personnalisé, cliquez sur l’icône Options de l’éditeur, sélectionnez Préférences, cliquez sur Panneaux, puis activez l’option Champs personnalisés.

L’éditeur sera actualisé et vous verrez le panneau Champs personnalisés en bas de l’écran.

Vous pouvez ici ajouter un nouveau champ personnalisé et lui attribuer un nom et une valeur.

Par exemple, si vous souhaitez ajouter le numéro ISBN d’un livre, vous pouvez ajouter un nouveau champ personnalisé avec le nom isbn et la valeur du numéro ISBN.

Ce panneau utilise la fonction add_post_meta pour ajouter les métadonnées à la publication.

Noms de champs préremplis pour le panneau Champs personnalisés

Il est également possible de remplir le champ Nom du panneau Champs personnalisés avec une liste de champs de métadonnées prédéfinis.

Pour ce faire, vous devez utiliser le filtre postmeta_form_keys et ajouter les noms des champs de métadonnées que vous souhaitez afficher dans le panneau Champs personnalisés.

Le filtre postmeta_form_keys est exécuté avant le rendu du code HTML du panneau Champs personnalisés et reçoit deux paramètres : un tableau de clés de métadonnées et l’objet de publication.

Si aucune autre clé n’est définie, une requête sera exécutée pour récupérer les clés de toutes les métadonnées existantes de la publication.

En mettant donc à jour le tableau des clés de métadonnées, vous pouvez ajouter des clés de champs de métadonnées au panneau Champs personnalisés afin de faciliter l’ajout des métadonnées appropriées par vos utilisateurs.

Voici un exemple de la manière dont vous pourriez procéder :

add_filter( 'postmeta_form_keys', 'bookstore_add_isbn_to_quick_edit', 10, 2 );
function bookstore_add_isbn_to_quick_edit( $keys, $post ) {
    if ( $post->post_type === 'book' ) {
        $keys[] = 'isbn';
    }
    return $keys;
}

Vous enregistrez une fonction de rappel sur le filtre postmeta_form_keys et définissez le nombre d’arguments acceptés à 2 afin d’accepter les deux arguments transmis par le filtre.

Vérifiez ensuite si le type de la publication est un livre et, si c’est le cas, ajoutez l’option isbn au tableau $keys, puis retournez ce tableau.

Si le type de publication est book, le champ de métadonnées isbn sera ajouté au panneau Champs personnalisés.

Si vous créez ou modifiez un livre avec le panneau Champs personnalisés activé, vous verrez le champ isbn disponible pour ajouter des métadonnées à la publication.

Boîtes de métadonnées personnalisées

Une autre manière de permettre aux administrateurs du site d’ajouter des métadonnées de publication consiste à utiliser des boîtes de métadonnées personnalisées.

L’utilisation de boîtes de métadonnées personnalisées nécessite toutefois également une bonne compréhension du développement axé sur la sécurité. Pour le moment, vous pouvez en apprendre davantage à leur sujet sur la page Boîtes de métadonnées personnalisées du manuel du développeur d’extensions.

Vous apprendrez à travailler avec les boîtes de métadonnées dans le parcours d’apprentissage du développement d’extensions.