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 :
- WPGraphQL (par Jason Bahl)
- Cherchez "WPGraphQL" et cliquez sur Installer maintenant
- Activez le plugin
-
Votre point d'accès GraphQL est désormais disponible à
https://votresite.com/graphql -
Pods (par Pods Framework Team) — pour les champs personnalisés et les types de contenu personnalisés
- Cherchez "Pods" et installez
- Activez-le
- 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é)
-
Pods est 100% open source (GPL) et gratuit
-
WPGraphQL for Pods — pour exposer les champs Pods à l'API GraphQL
- Installez et activez
- Cela rend vos champs Pods disponibles dans les requêtes GraphQL
Créer des champs personnalisés avec Pods¶
Une fois Pods installé :
- Allez dans Pods Admin → Edit Pods dans l'administration WordPress
- Sélectionnez un pod existant (par ex. Post) ou créez-en un nouveau
- Cliquez sur Add Field
- Définissez le nom du champ (par exemple,
featured_color) et choisissez un type (Plain Text, File / Image, Paragraph, etc.) - Dans les paramètres du champ, assurez-vous que Show in GraphQL est activé
- 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 :
- Allez dans Pods Admin → Add New
- Sélectionnez Custom Post Type
- Entrez le nom du type de contenu (par exemple,
team_member) - Définissez le libellé (ce qui apparaît dans l'administration, par exemple, « Membres de l'équipe »)
- Assurez-vous que Show in GraphQL est coché dans les paramètres du pod
- 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¶
- Ouvrez votre navigateur et allez à
https://votresite.com/graphql - Vous devriez voir un éditeur GraphQL
- Dans le panneau de gauche, cliquez sur l'icône Schema (qui ressemble à une loupe)
- Cherchez des types comme
Post,Pageou vos types de contenu personnalisés (par exemple,TeamMember) - 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 :
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 :
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 Admin → Edit Pods → sélectionnez le pod → vérifiez chaque champ).
- Les types de contenu personnalisés n'apparaissent pas — Allez dans Pods Admin → Edit 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¶
- Connecter une source de données — ajouter votre point d'accès WordPress GraphQL à Silex
- Lier les données — afficher le contenu WordPress sur vos pages
- Comment fonctionne le CMS — comprendre le flux de données de l'API au canevas
- Pods docs — documentation complète du framework Pods
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 Admin → Edit 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.