15

[EDIT]Des requêtes SQL pour vous sauver la vie avec WordPress

Web, Wordpress

cross grey small [EDIT]Des requêtes SQL pour vous sauver la vie avec WordpressCet article a été publié il y a 2 ans 3 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Edit: ajout d’une requête supplémentaire.

Vous avez changer votre blog WordPress de serveur et de domaine et la plus rien ne marche?

Vous voulez faire le ménage dans votre base de donnée?

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:

  1. Connectez vous sur phpMyAdmin.
  2. Sélectionnez votre base WordPress.
  3. Cliquez sur « exporter » dans le menu en haut de la page.
  4. Sélectionnez les tables à sauvegarder.
  5. Sélectionnez SQL pour avoir un fichier de sortie en .sql.
  6. Cochez la case « Transmettre« 
  7. Vous pouvez choisir un type de compression afin de réduire la taille de votre fichier.
  8. Cliquez sur « Exécuter » et le fichier devrait se télécharger.

phpmyadmin export 300x160 [EDIT]Des requêtes SQL pour vous sauver la vie avec Wordpress

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.

phpmyadmin sql requêtes [EDIT]Des requêtes SQL pour vous sauver la vie avec Wordpress

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

Voila j’espère que cet article vous sera utile, n’hésitez pas à me poser vos questions dans les commentaires.

Les sources:

How To Turn Off Post Revision In WordPress

How to: Batch deleting post revisions

Mark asked: How to batch deleting spam comments on a WordPress blog?

How to: Change author attribution on all posts at once

How to reset password manually

Changer le nom de domaine d’un blog WordPress sans encombres

Articles en relation :

Pas d'articles en relation.

 

Rédigé par

Tags: , ,

15 Commentaires Voir les tweets

  1. webdeux - Le Mercredi 10 fév 2010 à 5:19

    Des requêtes SQL pour vous sauver la vie avec WordPress http://lu.cx/Dbi0mB

     
  2. Sebastien Rousset - Le Mercredi 10 fév 2010 à 5:19

    Des requêtes SQL pour vous sauver la vie avec WordPress http://lu.cx/Dbi0mB ( via @GeekBooster )

     
  3. Wordpress Hosts - Le Mercredi 10 fév 2010 à 5:22

    RT @webdeux: Des requêtes SQL pour vous sauver la vie avec WordPress http://lu.cx/Dbi0mB

     
  4. Wordpress Hosts - Le Mercredi 10 fév 2010 à 5:22

    RT @sebastienr: Des requêtes SQL pour vous sauver la vie avec WordPress http://lu.cx/Dbi0mB ( via @GeekBooster )

     
  5. Ravana - Le Mercredi 10 fév 2010 à 5:30

    RT @sebastienr: Des requêtes SQL pour vous sauver la vie avec WordPress http://lu.cx/Dbi0mB ( via @GeekBooster )

     
  6. Flavien METIVIER - Le Mercredi 10 fév 2010 à 9:52

    RT @webdeux: Des requêtes SQL pour vous sauver la vie avec WordPress http://lu.cx/Dbi0mB

     
  7. topsy top20k fr - Le Mercredi 10 fév 2010 à 12:46

    Des requêtes SQL pour vous sauver la vie avec WordPress http://lu.cx/Dbi0mB

     
  8. Rodolphe Lemétayer - Le Mercredi 10 fév 2010 à 12:46

    RT @Bouillon Des requêtes SQL pour vous sauver la vie avec WordPress http://ff.im/-fHcm1 // Potentiellement très utile !

     
  9. Agence Webtik - Le Jeudi 11 fév 2010 à 20:30

    RT @CallMeDams: #tools #wp Des requêtes SQL pour vous sauver la vie avec WordPress http://ow.ly/1ou4NM

     
  10. Jules D - Le Vendredi 12 fév 2010 à 14:46

    RT @rlemetayer: RT @Bouillon Des requêtes SQL pour vous sauver la vie avec WordPress http://ff.im/-fHcm1 // Potentiellement très utile !

     
  11. exatropic - Le Mercredi 10 mar 2010 à 10:37

    Bonjour,

    Auriez-vous une requête qui me sauverait la vie pour afficher les article avec auteur, date, titre, contenu hors moteur de wordpress? Merci!

     
  12. Benjamin Freva - Le Jeudi 8 avr 2010 à 20:30

    Des requêtes #SQL pour vous sauver la vie avec #Wordpress http://icio.us/2igzbo

     
  13. Benjamin Fréva - Le Jeudi 8 avr 2010 à 23:10

    Merci pour toutes ces requêtes. Du coup je me suis fait une procédure pour mettre à jour la bdd de WordPress quand on change les urls. Donc je fais en profité toute le monde. Encore une fois MERCI ;) et bonne continuation à tous sur WordPress. !!

    ########## Procédure ##########

    DELIMITER |

    CREATE PROCEDURE PROC_UPDATE_URL_WORDPRESS ( IN oldUrl VARCHAR( 255 ), IN newUrl VARCHAR( 255 ) )
    BEGIN

    DECLARE OLDSRC VARCHAR( 255 ) DEFAULT CONCAT( « src= » », oldUrl );
    DECLARE NEWSRC VARCHAR( 255 ) DEFAULT CONCAT( « src= » », oldUrl );

    UPDATE wp_options
    SET option_value = REPLACE( option_value, oldUrl, newUrl )
    WHERE option_name = ‘home’ OR option_name = ‘siteurl’;

    UPDATE wp_posts
    SET guid = REPLACE( guid, oldUrl, newUrl );

    UPDATE wp_posts
    SET post_content = REPLACE( post_content, oldUrl, newUrl );

    UPDATE wp_posts
    SET post_content = REPLACE(post_content, OLDSRC, NEWSRC );

    UPDATE wp_posts
    SET guid = REPLACE( guid, oldUrl, newUrl ) WHERE post_type = ‘attachment’;

    UPDATE wp_postmeta
    SET meta_value = REPLACE( meta_value, oldUrl, newUrl );

    END
    |

    DELIMITER ;

    ########## Utilisation ##########
    CALL PROC_UPDATE_URL_WORDPRESS( « http://old-url », « http://new-url » );

     
    • Guimove - Le Vendredi 9 avr 2010 à 11:34

      Merci Benjamin pour ce script qui en aidera plus d’un, moi le premier.

       
  14. Benjamin Fréva - Le Jeudi 8 avr 2010 à 23:21

    Attention, les quotes ont été remplacés dans ma procédure. Vous pouvez retrouver le script ici :
    http://dl.dropbox.com/u/161245/MAJ-url-wordpress.sql