Filtrer, rechercher et trier des articles WordPress par champ personnalisé
Pour filtrer des articles WordPress par champ personnalisé, le champ doit faire partie de la requête : « tous les événements à Lisbonne », « chaque fiche de membre du personnel sans nom de famille », « des biens dont le prix va de 200 000 à 300 000 ». Dans WOLF, un champ personnalisé (méta de l'article) fonctionne comme n'importe quelle colonne native une fois ajouté. Vous pouvez filtrer selon sa valeur, le rechercher depuis le panneau d'outils, trier le tableau selon ce champ, puis modifier en masse ou exporter exactement les articles que vous avez trouvés. Quelques règles sur les types de champs et les valeurs manquantes décident si les résultats sont justes.
Rendre le champ personnalisé filtrable
Un champ personnalisé n'apparaît dans l'onglet Filtres qu'après deux étapes :
- Dans l'onglet Champs méta (Meta Fields), ajoutez la clé méta, donnez-lui un titre lisible et choisissez son type : string pour du texte, number pour les valeurs que vous voulez comparer ou trier comme des nombres. Cliquez sur Enregistrer les champs méta (Save meta fields).
- Dans l'onglet Réglages (Settings), activez la nouvelle colonne et cliquez sur Enregistrer tous les réglages (Save all settings).
La seconde étape est celle qu'on oublie. Les filtres, la recherche rapide et l'édition en masse ne proposent que les champs personnalisés dont la colonne est active. La façon de trouver la vraie clé méta d'un champ provenant d'un thème ou d'une extension, et le type à lui donner, est expliquée dans l'édition en masse des champs personnalisés.
Filtrer des articles selon la valeur d'un champ personnalisé
L'onglet Filtres donne à chaque champ personnalisé actif un filtre adapté à son type.
Champs de texte
Un champ string reçoit une zone de texte dont le titre sert d'indication, ainsi qu'une liste déroulante de comportements :
| Comportement | Trouve les articles dont le champ |
|---|---|
| LIKE | contient le texte |
| EXACT (=) | est exactement le texte |
| NOT EXACT (!=) | a une valeur différente |
| NOT LIKE | ne contient pas le texte |
| Vide (Empty) | est vide, ou dont l'article n'a pas du tout ce champ |
| Non vide (NOT Empty) | a une valeur non vide, quelle qu'elle soit |
Faites bien la différence entre les comportements négatifs et Vide (Empty). NOT EXACT (!=) et NOT LIKE ne regardent que les articles qui possèdent le champ. Un article qui n'a jamais reçu le champ n'est pas « différent » : il n'a simplement aucune valeur, et seul Vide (Empty) le trouve. Pour obtenir « tous les articles qui ne sont pas à Lisbonne, y compris ceux sans ville », filtrez deux fois ou renseignez d'abord les valeurs manquantes.
Contrairement aux filtres de titre et de contenu, le LIKE d'un champ personnalisé est un simple « contient » : les points, les crochets et les autres symboles des codes sont donc recherchés tels quels.
Champs numériques, de date et à cocher
- Un champ number reçoit une zone from et une zone to. Remplissez les deux pour une plage. Ne remplissez que from pour « au moins ». Ne remplissez que to pour « jusqu'à », en partant de 0. Des valeurs identiques trouvent un nombre exact. Deux zones vides ou à 0 signifient aucun filtre ; la valeur 0 elle-même ne peut donc pas être recherchée ainsi.
- Un champ number avec l'affichage calendar reçoit à la place des zones de date. Il attend des dates stockées sous forme d'horodatages Unix, ce qui correspond à la façon dont WOLF les enregistre.
- Un champ avec l'affichage checkbox reçoit une liste déroulante Oui (Yes) / Non (No).
Tous les filtres se combinent avec AND : un filtre de champ personnalisé associé à une catégorie, au [post] status, à By author et à une plage Date Published réduit le résultat pas à pas.
Recherche rapide par champ personnalisé
La recherche rapide du panneau d'outils de l'éditeur d'articles propose par défaut Titre (Title) et ID. Pour retrouver des articles à partir d'un code ou d'un nom stocké dans un champ personnalisé, comme un GTIN/EAN, un ISBN ou un nom de famille, ajoutez le champ à cette recherche :
- Ouvrez l'onglet Réglages (Settings) et repérez Add fields to the quick search.
- Saisissez des paires
meta_key:Titleséparées par des virgules, par exemple_gtin:GTIN,last_name:Last name. La partie avant les deux-points est la clé méta, celle qui suit est l'étiquette de la liste déroulante. - Cliquez sur Enregistrer tous les réglages (Save all settings) et rechargez la page.
Ce réglage ne fonctionne que pour les champs de texte : les champs doivent donc être de type string avec une colonne active. Les champs de texte natifs fonctionnent aussi, par exemple post_name:Slug,post_content:Content. Lorsque vous choisissez un champ personnalisé dans la liste déroulante de la recherche rapide, la liste des comportements passe aux options de ce champ, LIKE, EXACT (=) et les autres. Une recherche rapide réinitialise l'onglet Filtres et filtre uniquement selon ce champ ; lancez donc les recherches combinées depuis l'onglet Filtres. Les développeurs peuvent ajouter des options dans le code avec le filtre wpbe_quick_search_options, qui reçoit le tableau de paires key => label.
Trier des articles selon un champ personnalisé
Les colonnes de champs personnalisés sont triables : cliquez sur l'en-tête de colonne dans l'éditeur d'articles. Pour ouvrir le tableau trié selon un champ à chaque fois, choisissez-le sous Default sort by et Default sort dans l'onglet Réglages. L'ordre obtenu dépend du type que vous avez donné au champ :
- number trie numériquement : 9, 20, 100.
- string trie par ordre alphabétique, caractère par caractère : 100, 20, 9. Les nombres enregistrés comme string se trient donc « mal » ; passez ces champs en number. Les valeurs avec unités ou séparateurs de milliers (« 15 kg », « 1,200 ») ne peuvent pas du tout se trier comme des nombres.
Les dates ne se trient correctement que dans deux formats. Les horodatages Unix ou les nombres Ymd comme 20261012 se trient correctement en number. Les chaînes dans l'ordre année-mois-jour comme 2026-10-12 08:30:00 se trient correctement en string, car l'ordre alphabétique équivaut à l'ordre des dates. Les formats comme 12/10/2026 se trient par jour, et non par date. Ne passez pas une date au format chaîne en number pour la « rendre triable ». La colonne n'affiche alors que l'année, et enregistrer une cellule stockerait ce nombre à la place de la date.
Des articles disparaissent quand vous triez selon le champ
Trier selon un champ personnalisé demande à WordPress les articles ordonnés par cette clé méta. WordPress ne peut ordonner que les articles qui possèdent la clé ; les articles qui ne l'ont pas disparaissent donc du tableau tant que le tri est actif. Ils reviennent lorsque vous triez selon une autre colonne. Cela arrive souvent avec un champ que vous venez d'ajouter et que seuls quelques articles possèdent. Pour garder tous les articles dans le tableau trié, donnez une valeur à ceux qui n'en ont pas :
- Un nouveau champ qu'aucun article n'a encore : lancez une édition en masse sur tous les articles avec nouveau (new) et
0pour un nombre, ou nouveau (new) et un texte par défaut pour une chaîne. - Un champ string que certains articles ont : filtrez-le avec Vide (Empty) et définissez la valeur par défaut avec nouveau (new) sur ce seul résultat.
- Un champ number que certains articles ont : les filtres numériques n'ont pas d'option Vide (Empty). Passez un instant le champ en string dans l'onglet Champs méta, filtrez avec Vide (Empty), définissez
0, puis repassez-le en number.
Ne renseignez une valeur par défaut que si une valeur de remplissage ne pose aucun problème sur le site, par exemple 0 pour un ordre de tri. Un thème pourrait l'afficher.
Enregistrer la combinaison, puis modifier ou exporter
Un filtre dont vous aurez de nouveau besoin, comme « brouillons de Events sans lieu renseigné », peut être enregistré avec le bouton Profils de filtres (Filters profiles) du panneau d'outils. L'enregistrement fonctionne tant qu'un filtre est appliqué. Les profils sont stockés par utilisateur : chaque éditeur garde donc les siens. L'ensemble filtré est aussi ce sur quoi portent les étapes suivantes :
- L'onglet Édition en masse applique une modification à tous les articles filtrés, sauf si certains sont sélectionnés avec les cases à cocher.
- L'onglet Export écrit les articles filtrés avec vos colonnes actives en CSV ou en XML.
Si le filtrage ou le tri par champ personnalisé ne fonctionne pas
- Le champ n'est pas dans l'onglet Filtres ni dans la recherche rapide : sa colonne n'est pas active dans l'onglet Réglages, ou le type de publication a ses propres colonnes parce que Separate columns and meta for post types est activé. Les champs numériques ne peuvent pas servir dans la recherche rapide ; filtrez-les dans l'onglet Filtres.
- Le filtre ne trouve rien : comparez la valeur stockée dans une cellule avec ce que vous avez saisi. Les champs issus de listes de choix stockent souvent une clé (
lisbon) plutôt que l'étiquette (Lisbonne), et les tableaux sont stockés sérialisés ; LIKE trouve du texte à l'intérieur. - L'ordre de tri semble aléatoire : le type du champ ne correspond pas aux données (voir plus haut).
- Cliquer sur l'en-tête ne trie pas du tout selon le champ : vérifiez que la clé méta ne contient pas de majuscules. Le paramètre de tri est mis en minuscules, si bien qu'une clé comme
Last_Namene peut pas correspondre pour le tri. Le filtrage par cette clé fonctionne toujours.
Pour un exemple concret sur un type de contenu, consultez l'édition en masse d'annonces immobilières et d'offres d'emploi. Si un champ reste impossible à filtrer ou à trier, indiquez la clé méta, son type dans l'onglet Champs méta et un exemple de valeur sur le forum d'assistance de WOLF.