Des requêtes SQL pour vous sauver la vie avec WordPress
Vous avez changé votre blog WordPress de serveur et de domaine et là plus rien ne marche?
Vous voulez faire le ménage dans votre base de données ?
Et bien voici quelques exemples de requêtes SQL qui vous aiderons à faire tout ça rapidement et sans prise de tête.
Sauvegarde:
Avant de commencer la chose la plus importante à faire c’est de sauvegarder votre base de donnée.
Pour cela, plusieurs solutions s’offre à vous.
Soit vous utilisez directement une extensions WordPress tel que WP-DB-Backup ou WP-DBManager, ou alors vous pouvez le faire manuellement depuis l’interface de phpMyAdmin en suivant la procédure suivante:
- Connectez vous sur phpMyAdmin.
- Sélectionnez votre base WordPress.
- Cliquez sur « exporter » dans le menu en haut de la page.
- Sélectionnez les tables à sauvegarder.
- Sélectionnez SQL pour avoir un fichier de sortie en .sql.
- Cochez la case « Transmettre«
- Vous pouvez choisir un type de compression afin de réduire la taille de votre fichier.
- Cliquez sur « Exécuter » et le fichier devrait se télécharger.
Les requêtes:
Maintenant, nous allons pouvoir modifier notre base de donnée:
Pour les requêtes suivantes, on supposera que votre base a une structure par défaut et que le préfixe de vos tables est ‘wp_ », pensez donc à adapter les requêtes à vos table.
Les 5 requêtes suivantes vous serviront pour modifier l’URL de votre blog dans la base de donnée si vous avez changé de domaine:
Changer l’URL de votre site et de votre page d’accueil:
UPDATE wp_options SET option_value = replace(option_value, ‘http://www.ancienneurl.com’, ‘http://www.nouvelleurl.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;
Changer le GUID du blog qui sert à générer le permalien des articles par exemple:
UPDATE wp_posts SET guid = REPLACE (guid, ‘http://www.ancienneurl.com’, ‘http://www.nouvelleurl.com’);
Changer les URL de votre blog au sein de vos articles:
UPDATE wp_posts SET post_content = REPLACE (post_content, ‘http://www.ancienneurl.com’, ‘http://www.nouvelleurl.com’);
Modifier l’URL des images de vos articles:
UPDATE wp_posts SET post_content = REPLACE (post_content, ‘src= »http://www.ancienneurl.com’, ‘src= »http://www.nouvelleurl.com’);
Ainsi que leur GUID:
UPDATE wp_posts SET guid = REPLACE (guid, ‘http://www.ancienneurl.com’, ‘http://www.nouvelleurl.com’) WHERE post_type = ‘attachment’;
Modifier l’URL des « meta
», l’URL des champs personnalisés:
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, ‘http://www.ancienneurl.com’,’http://www.nouvelleurl.com’);
Voila pour les requêtes de migration de domaine.
Passons aux requêtes de maintenance et d’initialisation.
Modifier le nom d’un utilisateur, ici pour l’utilisateur « Admin
»:
UPDATE wp_users SET user_login = ‘Nouveau Nom’ WHERE user_login = ‘Admin’;
Modifier le mot de passe d’un utilisateur, ici pour l’utilisateur « Admin
»:
UPDATE wp_users SET user_pass = MD5( ‘Nouveau mot de passe’ ) WHERE user_login = ‘Admin’;
Attribuer tout les article d’un auteur A à un auteur B:
Ici nous faisons la requête avec les ID des auteurs.
UPDATE wp_posts SET post_author = ‘auteur-B-id’ WHERE post_author = ‘auteur-B-id’;
Supprimer les brouillons enregistrés automatiquement par wordpress:
DELETE FROM wp_posts WHERE post_type = « revision »;
Ou une 2ème solutions plus complète qui supprime aussi les « meta
»:
DELETE a,b,c FROM wp_posts a WHERE a.post_type = ‘revision’ LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
Supprimer les « meta key
» laissé par des Extensions que vous n’utilisez plus:
Certaine extension ajoute automatiquement des « meta » dans vos articles et gonfle votre base de donnée. Si vous n’utilisez plus ces extensions, vous pouvez supprimer les « meta » obsolètes.
DELETE FROM wp_postmeta WHERE meta_key = ‘la meta à supprimer’;
Récupérer les adresse e-mails de tous les commentaires:
Cette requête récupère les e-mails sans doublons
SELECT DISTINCT comment_author_email FROM wp_comments;
Supprimer tout les « PingBack »:
DELETE FROM wp_comments WHERE comment_type = ‘pingback’;
Faire le ménage dans les commentaires:
Cette requête vous permet de supprimer tout les spams ou commentaires non approuvés en fonction du code utilisé:
- 0 = Commentaire en attente de modération
- 1 = Commentaires approuvés
- spam = les commentaires considéré comme spam
DELETE FROM wp_comments WHERE comment_approved = ‘code 0, 1 ou spam’;
Trouver les Mots-Clefs non utilisés pour alléger la base de donnée:
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;
Edit: Récupérer la liste des commentaires les plus populaires en fonction de leur nombre de commetaires:
DESC: pour les classer dans l’ordre croissant, sinon remplacer par ASC
LIMIT 0 , 5: permet de ne récupérer que les 5 premier résultats, à vous d’adapter à vos besoin
SELECT comment_count,ID,post_title FROM wp_posts ORDER BY comment_count DESC LIMIT 0 , 5
Source: guimove.fr