Vous savez quand vous devez afficher certains articles WordPress basés sur des champs personnalisés ? Nous sommes passés par là.
Quand nous avons commencé avec WordPress, voir un extrait de code nous intimidait, surtout quand tout ce que nous voulions était d'afficher des articles avec des informations spécifiques.
Mais voici la bonne nouvelle : après avoir aidé des milliers de débutants sur WordPress, nous avons constaté que même quelque chose qui semble technique, comme le filtrage par champs personnalisés, n'a pas à être effrayant.
En fait, nous allons vous guider à travers une méthode de code simple pour le faire.
Cette solution fonctionne parfaitement, que vous publiiez des articles de blog réguliers ou des types d'articles personnalisés basés sur des critères spécifiques.

📌 Note rapide : Ce tutoriel concerne l'affichage des articles WordPress s'ils ont une valeur entrée dans un champ personnalisé spécifique.
Si vous souhaitez afficher des champs personnalisés sur le front-end d'un article WordPress, vous pouvez consulter notre guide sur comment afficher les champs personnalisés dans les thèmes WordPress.
Pourquoi afficher des articles WordPress avec un champ personnalisé spécifique ?
Lorsque vous créez un article sur votre site web WordPress, vous pouvez utiliser des champs personnalisés pour ajouter des métadonnées supplémentaires à l'article.
Les métadonnées sont des informations supplémentaires que vous pouvez ajouter à un article. Par exemple, si vous écriviez une critique de livre, vous pourriez ajouter des champs personnalisés pour « Nom de l'auteur » ou « Note en étoiles ».
Les champs personnalisés sont un concept avancé de WordPress, et il existe de nombreuses façons d'ajouter des champs personnalisés dans WordPress. Vous trouverez de nombreux conseils utiles sur la façon d'utiliser et d'afficher les champs personnalisés dans notre article, Champs personnalisés WordPress 101 : conseils, astuces et hacks.

L'un de nos utilisateurs nous a demandé comment afficher les articles WordPress uniquement si un champ personnalisé spécifique était présent. Cela peut être utile si vous cherchez à créer une page personnalisée qui liste tous les articles contenant un champ personnalisé et/ou une valeur spécifique.
Après avoir répondu avec la réponse, nous avons pensé qu'il serait préférable de la partager avec tout le monde afin que la communauté WordPress.org plus large puisse en bénéficier également.
Modification de vos fichiers de thème WordPress : ce qu'il faut garder à l'esprit
Pour pouvoir suivre ce tutoriel correctement, voici quelques éléments à garder à l'esprit :
- Ce tutoriel implique la modification de vos fichiers de thème WordPress avec du code, il n'est donc pas le plus adapté aux débutants complets. Si vous êtes nouveau dans ce domaine, vous devrez lire notre guide sur comment copier et coller du code dans WordPress.
- Nous vous recommandons de sauvegarder votre site web et/ou d'utiliser un environnement de staging afin que votre site en direct ne soit pas affecté en cas d'erreur. En effet, vous ajouterez du code aux fichiers de votre thème, ce qui peut être risqué.
- Nous vous recommandons de comprendre comment fonctionne la hiérarchie des modèles WordPress afin de savoir où ajouter le code plus tard.
- Vous devrez également vous familiariser avec le fonctionnement des boucles WordPress car nous appellerons ces paramètres dans une requête WordPress.
Notez également que ce tutoriel ne fonctionne qu'avec les thèmes WordPress classiques, car les thèmes de blocs ont un ensemble de fichiers de thème différent.
Cela étant dit, examinons comment afficher un article WordPress uniquement s'il possède un champ personnalisé spécifique.
Comment filtrer vos articles en fonction de champs personnalisés spécifiques
Avant de vous montrer le code que vous devez utiliser, vous devez savoir dans quel fichier de thème vous devez l'ajouter. Il s'agira très probablement d'un modèle de page, tel que index.php, archive.php, ou page.php.
Supposons que vous souhaitiez l'ajouter au fichier index.php du thème Twenty Twenty-One. Voici à quoi ressemble actuellement la partie boucle WordPress de ce fichier :
<?php
if ( have_posts() ) {
// Load posts loop.
while ( have_posts() ) {
the_post();
get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
}
// Previous/next page navigation.
twenty_twenty_one_the_posts_navigation();
} else {
// If no content, include the "No posts found" template.
get_template_part( 'template-parts/content/content-none' );
}
get_footer();
Ce code utilise la boucle WordPress par défaut (have_posts() et the_post()) pour afficher les articles. Cette méthode convient à la plupart des thèmes WordPress standard et est utilisée pour afficher les articles sans aucun filtrage ou tri personnalisé.
Maintenant, supposons que vous utilisiez le champ personnalisé 'color' comme dans l'exemple ci-dessus. Vous devrez remplacer tout ce code par l'extrait ci-dessous :
<?php
// The Query to show a specific Custom Field
$the_query = new WP_Query('meta_key=color');
// Load posts loop.
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
}
// Previous/next page navigation.
twenty_twenty_one_the_posts_navigation();
} else {
// If no content, include the "No posts found" template.
get_template_part( 'template-parts/content/content-none' );
}
// Reset Post Data
wp_reset_postdata();
get_footer();
Dans ce nouveau code, nous avons introduit une requête personnalisée pour récupérer les articles qui ont un champ personnalisé spécifique (dans ce cas, tout article avec le champ personnalisé « couleur »).
Il utilise ensuite une boucle personnalisée (if ($the_query->have_posts())) pour parcourir les articles récupérés par cette requête personnalisée, affichant le contenu de chaque article de la même manière que le premier extrait.
Nous avons également ajouté la fonctionwp_reset_postdata() pour garantir que WordPress revienne à l'affichage correct de tous les articles après la requête personnalisée. Cela garantit que le site fonctionne correctement et affiche le bon contenu aux utilisateurs.
Maintenant, que faire si vous voulez trouver des articles où le champ personnalisé « couleur » a une valeur spécifique, comme « bleu » ? Pour ce faire, il vous suffit d'ajouter un paramètre « meta_value » à votre requête.
Votre code de requête mis à jour ressemblera à ceci :
$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue' ) );
💡Astuce de pro : Vous pouvez aller encore plus loin dans votre filtrage avec le paramètre meta_compare. Cela vous permet de trouver des articles qui ne correspondent pas à une valeur.
Par exemple, pour afficher tous les articles où la couleur n'est pas « bleu », votre requête ressemblerait à ceci :
$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue', 'meta_compare' => '!=' ) );
Le != indique à WordPress de trouver tous les articles où le champ « couleur » existe mais n'est pas égal à « bleu ».
Il existe de nombreux autres opérateurs de comparaison que vous pouvez utiliser, que vous trouverez dans la documentation officielle du développeur WordPress.
Une fois que vous avez enregistré le code dans le fichier PHP du modèle de page, vous pouvez vérifier votre site WordPress sur le front-end pour voir votre code en action.
Foire Aux Questions sur l'Affichage d'un Article S'il Possède un Champ Personnalisé Spécifique
Voici quelques questions que nos lecteurs posent fréquemment sur l'affichage d'un article s'il ne possède qu'un champ personnalisé spécifique :
Y a-t-il un moyen de faire cela sans modifier les fichiers du thème ?
Oui, et c'est la méthode que nous recommandons à la plupart des utilisateurs. Un plugin comme WPCode vous permet d'ajouter en toute sécurité des extraits de code PHP personnalisés comme celui-ci sans toucher directement aux fichiers de votre thème.
Cela protège votre site des erreurs et garantit que vos personnalisations ne seront pas perdues lors de la mise à jour de votre thème.
Puis-je filtrer les articles par plusieurs champs personnalisés ?
Oui. La fonction WP_Query est très puissante et accepte des arguments plus complexes. Vous utiliseriez un paramètre « meta_query », qui vous permet de construire un tableau de conditions pour faire correspondre plusieurs champs personnalisés à la fois.
Cette méthode fonctionne-t-elle avec les thèmes de blocs ?
Ce tutoriel spécifique se concentre sur les thèmes classiques en modifiant des fichiers comme index.php ou archive.php. Les thèmes de blocs utilisent l'Éditeur de Site et ne dépendent pas de ces fichiers.
Pour obtenir un résultat similaire dans un thème de blocs, vous utiliseriez le bloc Boucle de Requête et ses options de filtrage intégrées, qui ne nécessitent pas de code personnalisé.
Quelle est la différence entre « meta_key » et « meta_value » ?
Pensez à la « meta_key » comme au nom de l'étiquette, par exemple « Couleur » ou « Statut ». La « meta_value » est la donnée réelle saisie dans ce champ, telle que « Bleu » ou « Publié ».
L'utilisation de la clé permet de trouver n'importe quel article ayant ce champ personnalisé, tandis que l'utilisation de la valeur permet de trouver n'importe quel article ayant cette information spécifique.
Découvrez d'autres façons de personnaliser votre site WordPress
Voici d'autres façons de personnaliser vos pages WordPress :
- Comment styliser différemment les catégories individuelles dans WordPress
- Comment ajouter une barre de défilement personnalisée dans WordPress
- Comment ajouter des styles personnalisés aux widgets WordPress
- Comment styliser différemment chaque article WordPress
- Comment utiliser les shortcodes dans vos thèmes WordPress
- Comment mettre en évidence les nouveaux articles pour les visiteurs récurrents dans WordPress
- Comment changer le côté de la barre latérale dans WordPress
Nous espérons que ce tutoriel vous a aidé à apprendre comment afficher un article WordPress uniquement s'il possède un champ personnalisé spécifique. Vous voudrez peut-être aussi consulter notre guide complet sur comment modifier un site Web WordPress et nos meilleurs choix de meilleurs plugins Figma pour WordPress.
Si cet article vous a plu, abonnez-vous à notre chaîne YouTube pour des tutoriels vidéo WordPress. Vous pouvez également nous retrouver sur Twitter et Facebook.

ahmed
j'ai une question monsieur si je veux afficher un seul article et des champs personnalisés, que dois-je faire.
je ne veux pas afficher l'article avec des champs personnalisés spécifiques. je veux afficher tous les champs personnalisés de l'article
Dave101
Salut, merci pour le tutoriel utile. J'ai une question, sur un site WordPress, j'ai défini une méta-valeur nommée "meta_country" et ensuite j'ai attribué à chaque article le pays de l'article, comme "us", "uk", "fr"... J'essaie maintenant d'ajouter quelque part sur la page d'accueil du blog un lien qui affiche la liste de tous les articles avec un pays spécifique et une étiquette spécifique. Par exemple, tous les articles "UK" étiquetés "APPLE".
Je ne comprends pas comment faire cela, quelqu'un pourrait-il m'aider ?
Максим Каминский
super merci, ça a très bien aidé !
pjhooker
Merci !
Eduard Unruh
omg enfin MERCI !
Mario M
Je n'ai pas pu générer de résultats à moins d'inclure le paramètre « post_type » dans la requête.
c'est-à-dire : $the_query = new WP_Query(‘post_type=page&meta_key=color’);
sacha
Merveilleux, si simple et propre.
Merci.
scottlee.me
@ad Excellente question ! Je suis curieux aussi.
ad
Bonjour,
Comment puis-je afficher des articles qui N'ONT PAS un champ personnalisé spécifique ? Une idée ?
Merci !!!
tara tin
D'après ce que je sais en PHP, cela devrait être meta_key!=’votre clé’
;il faut juste savoir que « ! » signifie « non »
brunobruno2
Magnifique ! Merci beaucoup de l'avoir partagé. Ça marche à merveille.