Comment créer et utiliser des champs personnalisés WordPress
Publié: 2020-04-23L'un des principaux avantages de WordPress est sa polyvalence, rendue possible grâce à ses fonctionnalités d'extensibilité intégrées. Parmi les différentes formules d'extension qu'il propose on retrouve des champs personnalisés :
WordPress a la capacité de permettre aux auteurs de publication d'attribuer des champs personnalisés à une publication. Ces informations supplémentaires arbitraires sont appelées métadonnées .
Les métadonnées sont gérées avec des paires clé/valeur . La clé est le nom de l'élément de métadonnées. La valeur est l'information qui apparaîtra dans la liste des métadonnées sur chaque publication individuelle à laquelle l'information est associée.
Documentation WordPress.org
Par exemple, si nous voulons créer des métadonnées sur des concepts liés au monde automobile, nous aurions des choses comme :
- Marque : Ford
- Modèle : Focus
- Couleur : blanc
- Puissance : 110cv
- etc
Dans l'article d'aujourd'hui, je vais vous montrer comment créer des champs personnalisés, comment les utiliser et comment ils pourraient vous aider en tant qu'utilisateur et/ou développeur WordPress. Veuillez noter que vous aurez besoin d'avoir une compréhension de base de la façon de coder dans WordPress… mais j'espère que vous pourrez suivre le post facilement, surtout quand je vous montrerai comment utiliser un plugin incroyable pour travailler avec des champs personnalisés : Champs personnalisés avancés.
Comment fonctionnent les champs personnalisés WordPress
La meilleure façon de comprendre ce que sont les champs personnalisés et leur fonctionnement est de consulter la base de données WordPress. Comme vous le savez peut-être déjà, chaque fois que vous créez un article, une page ou (presque) tout autre type de contenu dans WordPress, ce nouveau contenu est stocké dans une table appelée wp_posts (le préfixe peut changer).
Les tables d'une base de données sont comme n'importe quelle autre table avec laquelle vous avez déjà travaillé. Fondamentalement, ils ont un ensemble de colonnes qui définissent "ce que vous pouvez stocker" et des lignes avec les informations spécifiques. Dans le cas de wp_posts , les colonnes sont des éléments tels que title , content , author , publication date , etc. Rien d'extraordinaire, pour être honnête:

wp_posts dans une base de données WordPress.L'un des "problèmes" de l'utilisation des tables est que les informations que vous pouvez y stocker sont limitées aux colonnes qu'elles contiennent. Si vous souhaitez stocker des informations sur un nouveau concept, vous ne pourrez pas le faire. Alors, comment pouvez-vous créer des champs personnalisés si le tableau est déjà défini ? Eh bien, assez simple, vous avez juste besoin d'une nouvelle table conçue pour cela.
Dans chaque base de données WordPress, il existe une autre table appelée wp_postmeta comme suit :

wp_postmeta dans la base de données WordPress. Comme vous pouvez le voir dans la capture d'écran précédente, la table de métadonnées est conçue de telle manière que nous pouvons créer des paires clé/valeur à l'aide des colonnes meta_key et meta_value et associer chaque paire à un contenu spécifique à l'aide de la colonne post_id . Assez facile!
Voyons donc de plus près comment nous pouvons travailler avec cette table !
Comment créer un nouveau champ personnalisé
Comme nous l'avons déjà vu, les champs personnalisés sont toujours associés à une publication spécifique. Par conséquent, vous vous attendriez à une sorte d'interface utilisateur dans l'éditeur pour, eh bien, les éditer, n'est-ce pas ? Malheureusement, si vous jetez un œil à Gutenberg, il n'y en a pas…
Pour modifier des champs personnalisés dans l'éditeur WordPress, vous devez activer un panneau avancé. Cliquez simplement sur l'icône en haut à droite dans l'éditeur puis cliquez sur Options :

Cela ouvrira une nouvelle fenêtre avec les différents panneaux disponibles dans Gutenberg. Trouvez-en un nommé Champs personnalisés et activez-le :

Une fois activé, vous pouvez facilement créer et modifier les champs personnalisés de votre publication :


Cette interface simple nous permet de créer autant de paires clé/valeur que nous le souhaitons. Dans la capture d'écran ci-dessus, par exemple, vous voyez comment j'ai ajouté certains des champs que j'introduis au début de cet article : nelio_brand , nelio_model , nelio_color et nelio_hp .
Comment utiliser un champ personnalisé
Pour utiliser un champ personnalisé, vous avez besoin de trois choses : (a) l'identifiant d'une publication, (b) le nom du champ que vous souhaitez utiliser et (c) décider où vous souhaitez l'utiliser. Par exemple, supposons que je veuille afficher le champ nelio_brand que nous avons créé dans l'exemple ci-dessus à la fin d'un message. Pour récupérer sa valeur, il existe une fonction nommée get_post_meta que nous pouvons utiliser comme suit :
function nelio_add_brand_field( $content ) { $brand = get_post_meta( get_the_ID(), 'nelio_brand', true ); return "{$content}\n<p><strong>Brand:<strong> {$brand}</p>"; } add_filter( 'the_content', 'nelio_add_brand_field' );Notez que dans l'exemple précédent, nous abordons les trois choses que j'ai mentionnées précédemment :
- Le premier paramètre de
get_post_metaest précisément l'identifiant de la publication qui m'intéresse. Dans ce cas, nous utilisonsget_the_ID(), qui renvoie l'ID de la publication actuelle. - Le deuxième paramètre est le nom de notre champ méta (dans ce cas,
nelio_brand). - Enfin, nous utilisons le champ méta dans le front-end, comme quelque chose que nous voulons montrer à la toute fin du contenu de la publication. Et vous pouvez le dire parce que je le récupère et l'utilise pendant le filtre
the_content.
Le résultat de cette opération est quelque chose de similaire à ce que vous pouvez voir dans la capture d'écran suivante :

Mais ce n'est qu'un exemple, bien sûr ! Vous pouvez utiliser des champs personnalisés de bien d'autres manières que "d'imprimer quelque chose dans le front-end". Par exemple, Nelio A/B Testing est l'un des plugins que nous avons créés et il est conçu pour exécuter des tests fractionnés sur un site WordPress. Un test A/B nécessite la création d'un contenu alternatif, et notre plugin utilise des champs personnalisés pour étiqueter le contenu alternatif comme tel et limite comment et quand ce contenu est accessible par un visiteur.
Fonctions WordPress pour gérer les champs personnalisés
De la même manière que nous avons une méthode pour récupérer la valeur d'un champ personnalisé ( get_post_meta ), WordPress dispose de méthodes supplémentaires pour créer, mettre à jour et supprimer par programmation des champs personnalisés : add_post_meta , update_post_meta et delete_post_meta . Ces fonctions fonctionnent comme vous vous en doutez, donc je ne vous embêterai pas avec plus d'explications…
Qu'est-ce que c'est et comment utiliser les champs personnalisés avancés
Maintenant que vous savez comment fonctionnent les champs personnalisés dans WordPress, je pense pouvoir déjà vous annoncer la bonne nouvelle : il existe plusieurs plugins qui simplifient grandement le processus de travail avec les champs personnalisés !
L'un des plugins les plus connus et les mieux notés pour créer des métadonnées dans un site WordPress est Advanced Custom Fields. Avec lui, vous pourrez non seulement définir des champs personnalisés de manière plus simple, mais vous aurez également la possibilité de profiter d'une interface utilisateur améliorée pour traiter ces champs. Cette interface s'assure que les valeurs que vous définissez ont un sens et sont sémantiquement significatives : dates, images, galeries, plages, nombres… vous l'appelez !

Si vous voulez en savoir plus sur ACF, il existe de nombreuses ressources. Mais je pense que cette conférence de Jo Minney peut vraiment vous aider à démarrer :
Espérons que cette petite introduction aux champs personnalisés vous aidera à devenir un meilleur développeur WordPress !
Image sélectionnée par Polina Rytova sur Unsplash.
