# GPT-4o, Claude 3.5 ou Gemini pour générer du code WordPress ?

> Trois modèles, une même batterie de tâches WordPress : bloc Gutenberg, route REST, script de migration. Voici nos notes et le classement final.

- Auteur : Clément Hadrot
- Publié le : 2024-12-27
- Mis à jour le : 2024-12-27
- Catégorie : IA &amp; MCP
- URL : https://wpmoderne.dev.wordpress-developpement.fr/ia-mcp/gpt4o-claude-gemini-code-wordpress/

## L’essentiel

- Même prompt, même contexte, trois modèles testés à froid
- Claude 3.5 Sonnet le plus fiable sur les hooks WordPress
- Gemini rapide mais approximatif sur les schémas REST

Fin d'année, nous avons voulu clore un débat récurrent en interne : quel modèle choisir pour générer du code WordPress sans supervision constante ? Nous avons soumis GPT-4o, Claude 3.5 Sonnet et Gemini 1.5 Pro à trois exercices identiques, avec le même prompt de départ et le même contexte de projet, sans leur donner accès à un terminal ni à des outils. Ce n'est pas un comparatif d'assistants ou de plugins d'IDE : uniquement la qualité brute du code produit face à une consigne écrite.

Chaque tâche a été notée sur cinq critères : conformité aux standards de codage WordPress, sécurité (échappement, nonces, capacités), respect des hooks appropriés, absence d'hallucination de fonction, et code prêt à l'emploi sans retouche.

## Tâche 1 : un bloc Gutenberg dynamique

La consigne demandait un bloc affichant les trois derniers articles d'une catégorie choisie via un `InspectorControls`, rendu côté serveur avec `register_block_type` et un callback PHP. GPT-4o a produit un bloc fonctionnel mais a oublié d'échapper les titres avec `esc_html`, un oubli fréquent qu'on observe aussi chez des développeurs humains pressés. Claude 3.5 Sonnet a livré un code plus verbeux mais complet, avec échappement systématique et une vérification de capacité avant l'enregistrement du bloc côté éditeur. Gemini a généré un bloc correct dans l'ensemble, mais avec une erreur de syntaxe dans le fichier `block.json`, un attribut mal typé qui cassait l'enregistrement.

## Tâche 2 : une route REST personnalisée

Deuxième exercice : exposer une route `/monsite/v1/avis` permettant de lister et créer des avis clients, avec `register_rest_route`, validation des paramètres et contrôle de permission. C'est là que les écarts se sont creusés.

> L'essentiel à retenir : Même prompt, même contexte, trois modèles testés à froid ; Claude 3.5 Sonnet le plus fiable sur les hooks WordPress ; Gemini rapide mais approximatif sur les schémas REST

## Tâche 3 : un script de migration de données

Le dernier exercice demandait un script WP-CLI migrant des métadonnées d'un ancien champ personnalisé vers un champ ACF, avec traitement par lots pour éviter l'épuisement mémoire sur un site de 40 000 articles. GPT-4o a proposé une boucle correcte mais sans `wp_cache_flush` entre les lots, un oubli qui aurait saturé la mémoire sur un vrai import massif. Claude 3.5 Sonnet a produit le script le plus robuste des trois, avec pagination par `WP_Query`, vidage de cache périodique et un compteur de progression. Gemini a livré un script fonctionnel mais avec une requête SQL directe non préparée, un risque d'injection que nous avons dû corriger à la main.

### Synthèse chiffrée

| Modèle | Bloc Gutenberg | Route REST | Migration WP-CLI |
| --- | --- | --- | --- |
| GPT-4o | 7/10 | 6/10 | 7/10 |
| Claude 3.5 Sonnet | 9/10 | 9/10 | 9/10 |
| Gemini 1.5 Pro | 6/10 | 5/10 | 6/10 |

## Les points de vigilance communs aux trois modèles

Aucun des trois n'a échappé totalement à un défaut classique : la tentation d'inventer un nom de fonction plausible mais inexistant lorsque le contexte manquait de précision, en particulier sur des fonctions ACF récentes. Sur les trois tâches, nous avons aussi remarqué que fournir la version exacte de WordPress ciblée dans le prompt réduisait nettement les erreurs de compatibilité, un détail que beaucoup d'utilisateurs omettent.

- Préciser la version de WordPress et des extensions utilisées dans le prompt
- Toujours relire les échappements et les vérifications de capacité
- Faire tourner un linter PHPCS avec les règles WordPress sur toute sortie générée
- Ne jamais faire confiance à un nom de fonction sans le vérifier dans la documentation

> Un modèle qui code vite n'est pas un modèle qui code juste. Sur WordPress, la sécurité se perd souvent dans les détails que personne ne relit.

## Notre verdict

Sur cette batterie de trois tâches, Claude 3.5 Sonnet ressort clairement en tête, avec un code plus proche des standards WordPress officiels et moins d'erreurs de sécurité. GPT-4o reste un choix solide pour du prototypage rapide, à condition de relire systématiquement les échappements. Gemini, malgré une bonne vitesse de génération, nous a semblé le moins fiable des trois sur ce périmètre précis, avec des erreurs de syntaxe qui auraient cassé un déploiement en production sans relecture attentive.
