get_fields() ~ Tout ce qu’il faut savoir sur cette fonction d’ACF

Photo de profil de Cédric Chevillard

Cédric Chevillard ✌️

Je crée des sites web sur-mesure, pensés pour booster votre activité.

La fonction get_fields() est un outil puissant dans l’univers de WordPress, particulièrement pour ceux qui utilisent le plugin Advanced Custom Fields (ACF) dans la création de sites internet.

Que vous soyez développeur débutant ou expérimenté, comprendre comment utiliser cette fonction peut transformer la manière dont vous gérez et affichez les données personnalisées sur votre site.

Définition de la fonction get_fields()

La fonction get_fields() est une fonction native d’Advanced Custom Fields (ACF) qui permet de récupérer l’ensemble des champs personnalisés (custom fields) associés à un post, une page, un utilisateur, ou tout autre type d’entité dans WordPress.

Contrairement à la fonction get_field() qui ne renvoie qu’un seul champ, get_fields() renvoie un tableau contenant tous les champs et leurs valeurs, ce qui en fait un outil extrêmement pratique pour les développeurs et webmasters WordPress cherchant à manipuler ou afficher un grand nombre de données à la fois.

Les paramètres de la fonction get_fields()

Pour utiliser cette fonction de manière optimale, il est essentiel de comprendre ses paramètres principaux.

  get_fields([$post_id = false], [$format_value = true], [$escape_html = false]);

Voici un aperçu détaillé :

  1. $post_id (mixed) :
    Ce paramètre permet de spécifier l’ID de l’objet à partir duquel vous souhaitez récupérer les champs personnalisés. Par défaut, si ce paramètre n’est pas renseigné, get_fields() récupérera les champs de la publication actuelle dans la boucle WordPress.
  2. $format_value (booléen) :
    Ce paramètre détermine si les valeurs des champs doivent être formatées selon leur type de champ dans ACF. Par défaut, ce paramètre est défini sur true, ce qui signifie que les valeurs renvoyées seront automatiquement formatées pour correspondre au type de champ ACF.
  3. $escape_html (booléen) :
    Ce paramètre permet de renvoyer une version sécurisée pour le HTML des valeurs des champs. Cela signifie que les caractères spéciaux seront échappés pour prévenir toute vulnérabilité XSS (Cross-Site Scripting). Par défaut, $escape_html est défini sur false, mais vous pouvez le définir sur true si vous souhaitez vous assurer que le contenu est sûr pour une sortie directe en HTML.

Utiliser get_fields() sur la publication actuelle

Pour récupérer tous les champs personnalisés de la publication en cours, utilisez simplement la fonction get_fields() sans paramètres :

  $fields = get_fields();

Cela renverra un tableau associatif contenant tous les champs et leurs valeurs pour la publication actuellement affichée.

Vous pouvez ensuite parcourir ce tableau pour afficher ou traiter les données selon vos besoins.

Utiliser get_fields() sur un article précis

Pour récupérer tous les champs personnalisés d’un article spécifique ou de tout type de publication personnalisé, vous devez passer l’ID de la publication en paramètre à la fonction get_fields() :

  $fields = get_fields(123);

Dans cet exemple, 123 est l’ID de la publication dont vous souhaitez obtenir les champs personnalisés.

Le tableau retourné contiendra tous les champs et leurs valeurs associés à cette publication spécifique, que vous pourrez ensuite utiliser ou afficher selon vos besoins.

Cela fonctionne pour les articles, pages, ou tout autre type de publication personnalisé dans WordPress.

Utiliser get_fields() sur un utilisateur

Pour récupérer tous les champs personnalisés associés à un utilisateur spécifique, vous devez passer l’ID de l’utilisateur en utilisant le préfixe 'user_' suivi de l’ID, comme paramètre à la fonction get_fields() :

  $fields = get_fields('user_1');

Dans cet exemple, 'user_1' correspond à l’utilisateur avec l’ID 1.

Le tableau retourné contiendra tous les champs et leurs valeurs associés à cet utilisateur, vous permettant de les utiliser ou de les afficher selon vos besoins.

Utiliser get_fields() sur une catégorie

Pour récupérer tous les champs personnalisés associés à une catégorie spécifique, vous devez passer l’ID de la catégorie en utilisant le préfixe 'category_' suivi de l’ID, comme paramètre à la fonction get_fields() :

  $fields = get_fields('category_5');

Dans cet exemple, 'category_5' correspond à la catégorie avec l’ID 5.

Le tableau retourné contiendra tous les champs et leurs valeurs associés à cette catégorie, vous permettant de les utiliser ou de les afficher selon vos besoins.

Utiliser get_fields() sur une taxonomie

Pour récupérer tous les champs personnalisés associés à un terme de taxonomie spécifique, vous devez passer l’ID du terme en utilisant le préfixe de la taxonomie suivi de l’ID, comme paramètre à la fonction get_fields() :

  $fields = get_fields('taxonomy_10');

Dans cet exemple, 'taxonomy_10' correspond à un terme de la taxonomie avec l’ID 10.

Le tableau retourné contiendra tous les champs et leurs valeurs associés à ce terme de taxonomie, que vous pourrez utiliser ou afficher selon vos besoins.

Ce processus fonctionne pour toutes les taxonomies personnalisées ou par défaut dans WordPress.

Utiliser get_fields() sur une page d’options d’ACF

Pour récupérer tous les champs personnalisés associés à une page d’options créée avec ACF, vous devez passer 'options' comme paramètre à la fonction get_fields() :

  $fields = get_fields('options');

Dans cet exemple, 'options' indique que vous souhaitez récupérer les champs de la page d’options ACF.

Le tableau retourné contiendra tous les champs et leurs valeurs définis dans cette page d’options, vous permettant de les utiliser ou de les afficher selon vos besoins.

Cette méthode est particulièrement utile pour gérer les paramètres globaux de votre site.

Exemples d’utilisation de la fonction get_fields()

Exemple 1 : Utilisation simple de get_fields()

Dans cet exemple, nous allons récupérer et afficher tous les champs personnalisés d’une publication spécifique, comme un article ou une page, en utilisant l’ID de la publication.

  // Récupérer tous les champs personnalisés de la publication avec l'ID 42
  $fields = get_fields(42);

  // Vérifier si des champs ont été retournés
  if( $fields ) {
      // Parcourir chaque champ et afficher son nom et sa valeur
      foreach( $fields as $name => $value ) {
          echo '<p><strong>' . esc_html($name) . ':</strong> ' . esc_html($value) . '</p>';
      }
  } else {
      echo '<p>Aucun champ personnalisé trouvé pour cette publication.</p>';
  }

Dans cet exemple, get_fields(42) récupère tous les champs personnalisés de la publication ayant l’ID 42.

Ensuite, nous parcourons le tableau retourné pour afficher chaque champ et sa valeur.

Ce type d’utilisation est idéal pour afficher des informations supplémentaires sur une page ou un article spécifique.

Exemple 2 : Utilisation de get_fields() avec WP_Query

Dans cet exemple, nous allons utiliser get_fields() en combinaison avec WP_Query pour récupérer et afficher les champs personnalisés de plusieurs articles appartenant à une catégorie spécifique.

 
  // Définir une nouvelle requête WP_Query pour récupérer les articles de la catégorie avec l'ID 3
  $args = array(
      'category__in' => array(3),
      'posts_per_page' => 5
  );

  $query = new WP_Query($args);

  // Vérifier si la requête retourne des articles
  if ( $query->have_posts() ) {
      // Parcourir chaque article retourné par la requête
      while ( $query->have_posts() ) {
          $query->the_post();

          // Récupérer tous les champs personnalisés de l'article actuel
          $fields = get_fields();

          // Afficher le titre de l'article
          echo '<h2>' . get_the_title() . '</h2>';

          // Vérifier si des champs ont été retournés
          if( $fields ) {
              // Parcourir chaque champ et afficher son nom et sa valeur
              foreach( $fields as $name => $value ) {
                  echo '<p><strong>' . esc_html($name) . ':</strong> ' . esc_html($value) . '</p>';
              }
          } else {
              echo '<p>Aucun champ personnalisé trouvé pour cet article.</p>';
          }
      }

      // Réinitialiser les données de la requête
      wp_reset_postdata();
  } else {
      echo '<p>Aucun article trouvé dans cette catégorie.</p>';
  }

Dans cet exemple, nous utilisons WP_Query pour récupérer les cinq derniers articles d’une catégorie spécifique (ID 3).

Pour chaque article trouvé, get_fields() est utilisé pour récupérer tous les champs personnalisés associés à cet article.

Nous affichons ensuite le titre de l’article suivi de ses champs personnalisés.

Cette approche est utile pour afficher des listes d’articles enrichis de données supplémentaires dans des templates d’archives ou de pages personnalisées.

Mes autres articles

Infographie de l'article : Combien rapporte un site internet

Combien rapporte un site internet ? Décryptage et Stratégies Gagnantes

Si vous vous posez cette question, c’est probablement parce que vous envisagez de lancer un site ou que vous cherchez à optimiser celui que vous...

Infographie de l'article sur l'audit de sécurité WordPress

Audit de sécurité WordPress : ce qu’il faut savoir

La sécurité de votre site WordPress n’est pas à prendre à la légère. Que vous soyez un blogueur passionné, un entrepreneur en ligne ou une...

Infographie de l'article : Trouver un webmaster

Trouver un webmaster, ce que vous devez savoir absolument

Lorsqu’il s’agit de créer ou de gérer un site internet, trouver un webmaster compétent est une étape clé pour garantir le succès de votre projet....

Besoin d'un coup de main ? 👇