WPFormationWordPress, rien que du WordPress
Formation WordPress + IA
IA & Claude Code · Qualiopi · OPCO
Je me forme
15 Requêtes SQL très utiles pour WordPress
Tutoriels WordPress

15 Requêtes SQL très utiles pour WordPress

Par Fabrice Ducarme··Mis à jour le ·5 min de lecture
Résumé de l'article

L’accès direct à la base de données WordPress via des requêtes SQL permet de réaliser en quelques secondes des opérations qui prendraient des heures via l’interface : remplacer une URL en masse, nettoyer des révisions, corriger des données corrompues. Ces 15 requêtes couvrent les cas d’usage les plus fréquents en administration et maintenance WordPress.

Pas le temps ? Faites-le analyser par l'IA

Vous me lisez souvent ? Dites-le à Google

J'ajoute WPFormation à mes sources
WordPress fonctionne avec une base de données MySQL. Toutes les données WordPress telles que les messages, les commentaires, les catégories et les paramètres sont stockés dans cette base de données MySQL. Découvrez le schéma de la base de données WordPress sur le codex.wordpress.org. PhpMyAdmin-SQL-WordPress  

Sauvegarder votre base de donnees WordPress

En préambule et avant de procéder à toute modification, pensez à sauvegarder votre base de données! Vous pouvez télécharger le plugin WP-DBManager pour sauvegarder votre base de données via WordPress. Voici la procédure manuelle de sauvegarde via phpMyAdmin :
  1. Connectez-vous à phpMyAdmin
  2. Sélectionnez votre base de données WordPress
  3. En haut, cliquez sur Export
  4. Sélectionnez toutes les tables
  5. Sélectionnez SQL pour exporter au format .sql
  6. Cochez la case " Enregistrer comme fichier"
  7. Choisissez le type de compression gzip
  8. Enfin, cliquez sur OK
 

Comment effectuer des requetes SQL ?

Le moyen le plus simple pour exécuter l’une des requêtes ci-dessous est d’utiliser phpMyAdmin. Voici comment utiliser phpMyAdmin :
  1. Se connecter à son interface phpMyAdmin
  2. Sélectionnez votre base de donnée WordPress
  3. Cliquez sur l'onglet SQL
  4. Copiez/Collez les requêtes que vous souhaitez exécuter
SQL ATTENTION : Toutes les requêtes utilisées dans cet article partent du principe que votre préfixe de table est "wp_", à savoir, le préfixe standard pour les tables WP lors de l’installation WordPress. Si vous utilisez un préfixe de table différent (et c’est conseillé en terme de sécurité;), pensez à modifier les requêtes en conséquence.  

Requêtes SQL WordPress pratiques & utiles

Changer le chemin des images

Vous avez décidé d’utiliser un CDN tel qu’Amazon, après avoir créé le CNAME, utilisez la requête ci-après pour changer le chemin de vos images vers le CDN.
UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="https://www.anciensiteurl.com', 'src="https://votrecdn.nouveausiteurl.com');
 

Changer le Nom d'Utilisateur par Defaut "Admin"

Si vous avez choisi "admin" comme nom d’utilisateur lors de l’installation de WordPress, changez-le. Cela peut être un problème de sécurité car un pirate peut plus facilement forcer  votre admin WordPress. La requête change aussi user_nicename, l’identifiant qui apparaît dans l’adresse de vos pages d’auteur :
UPDATE wp_users SET user_login = 'Votre-Nouveau-Nom', user_nicename = 'votre-nouveau-nom' WHERE user_login = 'admin';
 

Changer le mot de passe

Besoin de changer ou de réinitialiser votre mot de passe dans WordPress, voire même celui des autres utilisateurs ?
UPDATE wp_users SET user_pass = MD5( 'nouveau_mot_passe' ) WHERE user_login = 'votre-username';
 

Assigner tous les articles de l’auteur A à l’auteur B

Si vous souhaitez transférer les articles de l’auteur A vers l’auteur B, il serait très long de la faire, article par article. Utilisez la requête SQL suivante. Vous devrez d’abord obtenir l’ID des 2 auteurs en allant sur les profils utilisateurs depuis votre panneau d’administration WordPress. Cliquez sur les noms des auteurs pour voir leur profil. Dans la barre d’adresse, cherchez " user_id ".
UPDATE wp_posts SET post_author = 'nouvel-auteur-ID' WHERE post_author = 'ancien-auteur-ID';
 

Effacer les revisions

Chaque changement ou modification sous WordPress provoque un enregistrement dans la base de données, voici un moyen très simple de les supprimer.
DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'
 

Effacer les Metas des articles

Lorsque vous supprimez un plugin certaines informations restent en base de données (post_meta_table). Réduisez la taille de votre base avec cette requête SQL:
DELETE FROM wp_postmeta WHERE meta_key = 'votre-meta-key';
 

Exporter les emails des commentateurs

Récupérez les adresses mails des commentateurs de votre blog :
SELECT DISTINCT comment_author_email FROM wp_comments;
Attention : ces adresses vous ont été confiées pour publier un commentaire, pas pour recevoir vos e-mails. Ne les utilisez pas pour une newsletter ou de la prospection sans le consentement préalable des personnes (règles de la CNIL).  

Effacer les Pingback

Trop de pingback? Voici comment les supprimer :
DELETE FROM wp_comments WHERE comment_type = 'pingback';
 

Effacer tous les commentaires Spam

Vous avez de nombreux commentaires classés spam ? Effacez-les en une fois :
DELETE FROM wp_comments WHERE comment_approved = 'spam';
  • 0 = En attente de modération
  • 1 = Approuvé
  • Spam = Marqué comme spam
Après ces suppressions de pingbacks ou de spams, effacez aussi les métadonnées des commentaires qui n’existent plus :
DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_ID FROM wp_comments);
 

Identifier les Tags inutilises

Voici comment identifier les tags non utilisés sur votre WordPress :
SELECT * From wp_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count=0;
 

Desactiver les commentaires pour les vieux articles

Si vous ne voulez plus modérer les commentaires de vos vieux articles, vous pouvez désactiver les commentaires de ces derniers en fonction d’une date, utilisez la requête suivante :
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2012-01-01'
 

Retirer les caracteres illisibles

Vous avez des problèmes d’encodage de caractères ? Au lieu de nettoyer vos articles et commentaires un-à-un, voici une série de requêtes à lancer pour les remplacer.
UPDATE wp_posts SET post_content = REPLACE(post_content, '“', '“');
UPDATE wp_posts SET post_content = REPLACE(post_content, '”', '”');
UPDATE wp_posts SET post_content = REPLACE(post_content, '’', '’');
UPDATE wp_posts SET post_content = REPLACE(post_content, '‘', '‘');
UPDATE wp_posts SET post_content = REPLACE(post_content, '—', ' - ');
UPDATE wp_posts SET post_content = REPLACE(post_content, '–', ' - ');
UPDATE wp_posts SET post_content = REPLACE(post_content, '•', '-');
UPDATE wp_posts SET post_content = REPLACE(post_content, '…', '…');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '“', '“');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '”', '”');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '’', '’');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '‘', '‘');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '—', ' - ');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '–', ' - ');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '•', '-');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '…', '…');
 

Desactiver tous vos plugins WordPress

Une requête permettant  de désactiver l’ensemble de vos plugins. Notez d’abord la liste des plugins actifs (dans phpMyAdmin, affichez le texte complet du résultat, tronqué par défaut, et gardez-le pour pouvoir les réactiver ensuite) :
SELECT option_value FROM wp_options WHERE option_name = 'active_plugins';
Puis désactivez-les tous :
UPDATE wp_options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';
 

Chercher et remplacer du contenu dans vos articles

Pour remplacer facilement un contenu par un autre, utilisez cette requête SQL :
UPDATE wp_posts SET post_content = REPLACE(post_content, 'Ancien_Texte', 'Nouveau_Texte');
Ne mettez jamais le nom de la colonne entre apostrophes : 'post_content' serait lu comme un simple texte, et la requête échouerait ou remplacerait le contenu de vos articles par ce mot. Vérifiez d’abord quels articles sont concernés avec
SELECT ID FROM wp_posts WHERE post_content LIKE '%Ancien_Texte%';
 

Supprimer et/ou remplacer un Shortcode dans vos articles

Les shortcodes WordPress c’est toujours pratique mais quand on change son thème WordPress, il arrive parfois qu’ils ne soient plus compatibles.  Même requête SQL que celle ci-dessus, cette dernière permet de supprimer ou remplacer vos Shortcodes caduques.
UPDATE wp_posts SET post_content = REPLACE(post_content, '[AncienShortcode]', '');
Laissez '' pour supprimer le shortcode, ou indiquez le nouveau à la place (par exemple '[NouveauShortcode]').  
Newsletter gratuite

Chaque mois, je passe 15 heures en veille WordPress. Vous, vous recevez un email de 3 minutes.

Sécurité, performance, SEO, nouveautés, IA : l'essentiel trié, vérifié et expliqué par un formateur WordPress depuis 2012 et fondateur de WPServeur.

01Alertes sécurité et patches critiques
02Nouveautés WordPress décryptées
03Tips SEO et performance
04Veille IA appliquée à WordPress
05Retours terrain sur des tutoriels WordPress
06Plugins et outils recommandés

Double opt-in : un email de confirmation à valider. Max 2 emails/mois. WPFormation utilise les données saisies, via Brevo, pour votre inscription et les emails annoncés, avec votre consentement. Données jamais revendues. Désabonnement en 1 clic. Vos droits et la conservation de vos données

Fabrice Ducarme, formateur WordPress
Fabrice Ducarme

Référence francophone WordPress depuis 2012. Expert en IA (Claude, Gemini) et développement Headless (Next.js), je forme les professionnels à maîtriser l'écosystème web d'aujourd'hui et de demain.

Comment j'utilise l'IA pour écrire ces articles