Aller au contenu

Configuration WordPress

Pour utiliser WordPress comme CMS avec Silex, vous devez exposer votre contenu via une API GraphQL. Cette page vous guide à travers les plugins et la configuration nécessaires.

Vous avez besoin d'un site WordPress que vous pouvez modifier. Si vous testez en local, utilisez une installation WordPress locale ou un site de staging. Les plugins ci-dessous sont gratuits et largement utilisés.

Installer les plugins requis

Connectez-vous à votre tableau de bord d'administration WordPress et allez dans Extensions > Ajouter une extension.

Installez ces plugins :

  1. WPGraphQL (par Jason Bahl)
  2. Cherchez "WPGraphQL" et cliquez sur Installer maintenant
  3. Activez le plugin
  4. Votre point d'accès GraphQL est désormais disponible à https://votresite.com/graphql

  5. Pods (par Pods Framework Team) — pour les champs personnalisés et les types de contenu personnalisés

  6. Cherchez "Pods" et installez
  7. Activez-le
  8. Pods gère à la fois les champs personnalisés et les types de contenu personnalisés dans un seul plugin (pas besoin d'un plugin CPT UI séparé)
  9. Pods est 100% open source (GPL) et gratuit

  10. WPGraphQL for Pods — pour exposer les champs Pods à l'API GraphQL

  11. Installez et activez
  12. Cela rend vos champs Pods disponibles dans les requêtes GraphQL

Créer des champs personnalisés avec Pods

Une fois Pods installé :

  1. Allez dans Pods AdminEdit Pods dans l'administration WordPress
  2. Sélectionnez un pod existant (par ex. Post) ou créez-en un nouveau
  3. Cliquez sur Add Field
  4. Définissez le nom du champ (par exemple, featured_color) et choisissez un type (Plain Text, File / Image, Paragraph, etc.)
  5. Dans les paramètres du champ, assurez-vous que Show in GraphQL est activé
  6. Cliquez sur Save Pod

Les champs Pods apparaissent désormais dans votre API GraphQL sous chaque article.

Types de champs courants : - Plain Text — texte court (titre, nom, ligne unique) - Paragraph — texte plus long (description, biographie) - File / Image — une seule image (image mise en avant, vignette) - File / Image (multiple) — plusieurs images - Relationship — lien vers d'autres articles - Pick (Select) — menu déroulant - Yes/No — case à cocher/booléen - Date / Time — champ calendrier pour les dates

Créer des types de contenu personnalisés

Si votre contenu ne correspond pas aux types par défaut « Article » et « Page » de WordPress, créez un type de contenu personnalisé avec Pods :

  1. Allez dans Pods AdminAdd New
  2. Sélectionnez Custom Post Type
  3. Entrez le nom du type de contenu (par exemple, team_member)
  4. Définissez le libellé (ce qui apparaît dans l'administration, par exemple, « Membres de l'équipe »)
  5. Assurez-vous que Show in GraphQL est coché dans les paramètres du pod
  6. Cliquez sur Save Pod

Le nouveau type de contenu apparaît désormais dans WordPress et dans GraphQL. Vous pouvez y ajouter des champs personnalisés directement dans la même définition du pod.

Vérifier le point d'accès GraphQL

  1. Ouvrez votre navigateur et allez à https://votresite.com/graphql
  2. Vous devriez voir un éditeur GraphQL
  3. Dans le panneau de gauche, cliquez sur l'icône Schema (qui ressemble à une loupe)
  4. Cherchez des types comme Post, Page ou vos types de contenu personnalisés (par exemple, TeamMember)
  5. Cliquez sur un type pour voir ses champs disponibles

Si vous voyez vos types de contenu, l'API fonctionne.

Tester l'API avec une requête simple

Dans l'éditeur GraphQL :

query {
  posts(first: 5) {
    edges {
      node {
        id
        title
        excerpt
      }
    }
  }
}

Cliquez sur le bouton de lecture. Vous devriez obtenir une liste de vos 5 articles les plus récents avec leurs titres et extraits. Cela prouve que l'API renvoie du vrai contenu.

Si vous avez créé des champs Pods, ils apparaîtront dans le schéma une fois WPGraphQL for Pods activé. Requêtez-les directement :

query {
  posts(first: 5) {
    edges {
      node {
        title
        featuredColor
        featuredImage {
          sourceUrl
        }
      }
    }
  }
}

Contenu public vs. privé

Par défaut, WPGraphQL respecte les permissions WordPress. Si un article est défini comme « Privé », il n'apparaît dans GraphQL que si l'utilisateur est connecté.

Pour un site public, assurez-vous que votre contenu est publié et défini comme public dans WordPress. Pour un accès authentifié (par exemple, un site réservé aux membres), vous devrez peut-être ajouter des en-têtes d'authentification lors de la connexion depuis Silex.

Problèmes courants

  • « GraphQL endpoint not found » — Assurez-vous que le plugin WPGraphQL est installé et activé.
  • Les champs personnalisés n'apparaissent pas dans GraphQL — Installez « WPGraphQL for Pods » et vérifiez que « Show in GraphQL » est activé sur chaque champ dans les paramètres du pod (Pods AdminEdit Pods → sélectionnez le pod → vérifiez chaque champ).
  • Les types de contenu personnalisés n'apparaissent pas — Allez dans Pods AdminEdit Pods, sélectionnez le pod et assurez-vous que « Show in GraphQL » est coché.
  • La requête renvoie des résultats vides — Vérifiez les permissions WordPress. Les articles privés n'apparaissent que pour les utilisateurs connectés.

Utiliser ACF à la place

Si vous préférez ACF (Advanced Custom Fields) à Pods, le fonctionnement est similaire. Installez ACF + WPGraphQL for ACF au lieu de Pods + WPGraphQL for Pods. Notez qu'ACF Pro est un plugin commercial (~99$/an), tandis que Pods est entièrement gratuit et open source.

En savoir plus


Quiz

Q1 : Vous avez installé WPGraphQL mais votre point d'accès GraphQL n'est pas accessible. Quelle est la première chose à vérifier ?

  • A) Redémarrer votre serveur WordPress
  • B) S'assurer que le plugin WPGraphQL est activé
  • C) Vérifier que votre domaine a SSL (HTTPS)
Réponse

B) S'assurer que le plugin WPGraphQL est activé — Installer le plugin ne suffit pas ; il doit être activé. Allez dans Extensions et vérifiez le statut.

Q2 : Vous souhaitez ajouter un champ « Image mise en avant » à vos articles de blog. Quel plugin utilisez-vous ?

  • A) Custom Post Type UI
  • B) Pods
  • C) WPGraphQL
Réponse

B) Pods — Pods vous permet de définir des champs personnalisés pour les articles et autres types de contenu. Allez dans Pods AdminEdit Pods, sélectionnez votre pod et ajoutez des champs sans coder.

Q3 : Vous avez créé un type de contenu personnalisé appelé « Portfolio Item » mais il n'apparaît pas dans GraphQL. Quel est le problème le plus probable ?

  • A) WPGraphQL n'est pas installé
  • B) « Show in GraphQL » n'est pas activé sur le type de contenu personnalisé
  • C) Vous devez d'abord créer des champs personnalisés pour celui-ci
Réponse

B) « Show in GraphQL » n'est pas activé sur le type de contenu personnalisé — Lors de la création d'un type de contenu personnalisé avec Pods, vous devez cocher le paramètre « Show in GraphQL » dans la configuration du pod pour qu'il apparaisse dans votre API.

Q4 : Vous avez ajouté un champ Pods appelé featured_color à vos articles. De quel plugin avez-vous besoin pour le requêter depuis GraphQL ?

  • A) WPGraphQL for Pods
  • B) Custom Post Type UI
  • C) Juste Pods et WPGraphQL
Réponse

A) WPGraphQL for Pods — Ce plugin passerelle expose les champs Pods à l'API GraphQL. Sans lui, les champs Pods peuvent ne pas apparaître dans les requêtes GraphQL.

Éditer cette page sur GitLab