Référence WordPress orientée incident : logs, plugins, thèmes, base, WP-CLI, cron, permaliens, SMTP, permissions et erreurs 500/critiques.
Fichiers & chemins
- Configuration — wp-config.phpContient notamment accès DB, salts et constantes de debug.
- Plugins — wp-content/plugins/Un plugin défaillant peut être neutralisé en renommant son dossier, avec précaution.
- Thèmes — wp-content/themes/Conservez au moins un thème par défaut compatible comme solution de repli.
- Uploads — wp-content/uploads/Vérifiez espace disque, droits et URLs avant d’accuser la médiathèque.
Debug & logs
- Activer debug — define('WP_DEBUG', true);À activer temporairement sur une fenêtre de diagnostic.
- Journaliser — define('WP_DEBUG_LOG', true);Écrit normalement dans wp-content/debug.log selon configuration.
- Masquer à l’écran — define('WP_DEBUG_DISPLAY', false);Évite d’exposer des erreurs détaillées aux visiteurs.
- Log PHP/web — error_log / logs FPM / logs Apache ou NginxPour un HTTP 500, le log serveur est souvent plus précis que l’écran WordPress.
Plugins & thèmes
- Lister plugins WP-CLI — wp plugin listAffiche statut et versions depuis le shell.
- Désactiver un plugin — wp plugin deactivate nom-pluginPlus propre qu’un renommage si WP-CLI fonctionne.
- Désactiver tous — wp plugin deactivate --allAction de diagnostic forte : planifiez l’impact applicatif.
- Basculer thème — wp theme activate twentytwentysixÀ faire seulement si un thème de repli est installé et compatible.
Base de données
- Tester DB WP-CLI — wp db checkVérifie l’accès et l’état logique des tables supportées.
- Préfixe — $table_prefixConfirme le préfixe réellement attendu par l’instance.
- URL WordPress — wp option get siteurlCompare siteurl et home en cas de redirection ou migration.
- URL publique — wp option get homeUne incohérence peut provoquer redirections ou liens incorrects.
Cron & tâches
- Événements cron — wp cron event listRepère tâches très fréquentes, en retard ou inconnues.
- Tester cron — wp cron event run --due-nowPeut exécuter de nombreuses tâches ; à utiliser avec conscience de l’impact.
- WP-Cron désactivé — define('DISABLE_WP_CRON', true);Si activé, un cron système externe doit appeler wp-cron.php.
- Boucles cron — Rechercher hooks qui se replanifient anormalementCorrélez avec logs PHP et charge DB.
Permaliens, cache & HTTP
- Régénérer permaliens — wp rewrite flushNe pas appeler à chaque requête ; seulement après changement de règles.
- Lister règles — wp rewrite list | head -50Utile pour vérifier qu’une route attendue existe.
- Cache objet — wp cache typeSelon WP-CLI/version, identifie ou non la couche cache active.
- HTTP 301/404/500 — curl -I https://exemple.fr/page/Compare comportement public et admin sans navigateur.
Email & formulaires
- wp_mail — Dépend de la configuration PHP ou d’un plugin SMTPUn formulaire peut fonctionner côté validation mais échouer à la livraison.
- SMTP — Préférer un compte/service authentifié avec logsConservez l’ID du message ou la trace fournisseur pour diagnostic.
- SPF/DKIM/DMARC — Contrôler le domaine utilisé dans From/Return-PathUne mauvaise identité d’envoi peut causer spam ou rejet.
- Test mail WP-CLI — wp eval "var_dump(wp_mail('admin@example.com','Test BOAI','Test'));"Un true indique seulement que WordPress a remis le message au transport configuré.
Erreur critique / HTTP 500
- Log en premier — PHP-FPM / Apache / Nginx / debug.logL’écran “erreur critique” ne contient souvent pas la cause complète.
- Mémoire — memory_limit + WP_MEMORY_LIMITUne limite PHP/FPM peut primer sur la constante WordPress.
- Plugin fautif — Renommer un seul dossier plugin à la foisÉvitez de modifier plusieurs variables simultanément.
- Mode récupération — Lien envoyé par WordPress si email admin fonctionnelUtile pour isoler une extension sans FTP, mais dépend de la livraison email.
À retenir
- Avant toute modification, sauvegardez fichiers et base ou assurez-vous d’un point de restauration.
- Ne laissez pas WP_DEBUG_DISPLAY actif sur un site public.
- Un HTTP 500 doit être corrélé aux logs serveur, pas uniquement au journal WordPress.
- Évitez les flush/rebuild automatiques à chaque requête : ils peuvent provoquer charge et instabilité.