WordPress, 13 Requêtes SQL Indispensables

Catégorie de l'article : Débuter avec WordPress, Optimisation WordPress, WordPress   |   8 Commentaires  |  7 222 Vues

wordpress-requetes-mysql-564x272
Aprés avoir lu notre Guide Complet pour Optimiser votre Référencement WordPress, attaquons-nous à la base de donnée.

WordPress repose sur une base de donnée MySQL. C’est une information que la plus part des utilisateurs de WordPress sait déjà. Si ce n’était pas le cas… Sachez que MySQL est un SGDBR Open Source et gratuit qui se trouve chez la plus part des hébergeurs Web. Toutes vos données, billets, commentaires, catégories, paramètres sont stockés dans cette base de données, MySQL. Maintenant vous savez. Si vous souhaitez en savoir plus, un coup d’œil sur le schéma de la base de donnée wordpress pourrait être un bon départ.

Mais pourquoi parler de MySQL ? Pour les ouvertures que nous offrent les requêtes SQL, les automatismes et le gain de temps dans le traitement d’une informations récursive.

Imaginions que vous ayez une modification à faire sur chacun de vos billets, le faire au travers du back office de WordPress peut devenir un pensum, et multiplier le nombre d’erreurs humaines. Cette action pourrait certainement être exécuté en un instant au travers d’une requête SQL.

Découvrons les requêtes SQL qui pourraient vous être à la source d’un immense gain de temps dans votre administration et gestion de votre site WordPress.

Sauvegardez votre Base de Donnée WordPress

Avant de faire quelque changement que ce soit, sauvegardez votre base de donnée. Oui oui, c’est de l’impératif ! Sauvegarder sa base de donnée WordPress avant toute modification doit devenir une habitude, cela vous sauvera la vie en cas de crash… Et ca nous épargnera les pleurnicheurs !

Pour sauvegarder votre base de donnée WordPress, vous pouvez télécharger WP-DB-Backup ou WP-DBManager, deux plugins pour sauvegarder votre base de donnée au travers du panneau d’admin de WordPress.

Mais parler de requêtes SQL et sauvegarder grâce à des plugins, ca craint. Alors, on sort la barbe, et on va faire ca à la mimine. Enfin presque car phpMyAdmin automatise grandement la tâche.

  1. Connectez-vous à votre interface phpMyAdmin.
  2. Sélectionnez votre base de donnée WordPress.
  3. Cliquez sur Export, en haut.
  4. Sélectionnez toutes vos tables.
  5. Selectionnez SQLpour exportez au format .sql.
  6. Cliquez sur Sauvegarder.
  7. Choisissez le moyen de compression, sélectionnez gzipped.
  8. Et pour finir, cliquez sur Ok, et après que votre navigateur vous y ait invité, sauvegarder le fichier sur votre poste.

Une solution simple, que je préconise car pas besoin de plugins; et moins de plugins nous avons, mieux nous nous portons :)

13 Requêtes SQL pour WordPress

Un moyen simple d’exécuter une requête SQL reste encore phpMyAdmin en ce qui concerne MySQL, bien que cela soit un point de faible pour la sécurité générale de votre site. Mais cela est un autre sujet. Le plugin WordPress SQL Executioner vous permet également d’exécuter à partir de l’admin de WordPress.

Pour faire simple, voici comment utiliser phpMyAdmin :

  1. Se connecter à son interface phpMyAdmin et sélectionnez votre base de donnée WordPress.
  2. Cliquez sur l’onglet SQL.
  3. Copiez/Collez les requêtes que vous souhaitez exécuter.

SQL Query Box

Note: Toutes nos requêtes partiront du principe que le préfixe de table que vous avez est _wp. Cependant, nous attirons votre attention sur le fait que cela représente une faiblesse de sécurité. Choisir un autre préfixe lors de l’installation est une excellente idée.

Changement du Siteurl & Homeurl

WordPress sauvegarde dans la base de donnée le chemin absolue de l’URL de votre site ainsi que l’adresse de la page d’accueil. Pour ceux qui souhaiterez migrer leur site ou blog wordpress vers un nouveau nom de domaine, il faut changer ces valeurs dans la base de donnée au risque de voir son site qui ne change plus. Il suffit de changer les valeurs Siteurl et Homurl pour que votre site reparte correctement.

Requête SQL WordPress :

UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com') WHERE option_name = 'home' OR option_name = 'siteurl';

Changer le GUID

Pour la migration de votre site wordpress sur un autre nom de domaine, le changement du champ GUID présent dans la table wp_posts est primordiale. En effet, le GUID est le champ qui est utilisez en tant que chemin absolue.

Requête SQL WordPress :

UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');

Changer les URL dans le Contenu

Plutôt que de stocker les URL en chemin relatif, WordPress préfère les stocker en chemin absolue.

Requête SQL WordPress

UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com');

Changer le Chemin de vos Images

Vous avez décidé de sauter le pas ? Vous allez utiliser les services d’un CDN ? C’est une bonne chose. Après avoir fait le nécessaire niveau DNS, il va falloir mettre à jour manuellement les chemins vers vos images. Cette petite requête SQL peut vous faire gagner des heures !

Requête SQL WordPress :

UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://www.oldsiteurl.com', 'src="http://yourcdn.newsiteurl.com');

Du coup, il vous faut aussi remplacer le GUID des images jointes :

UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://yourcdn.newsiteurl.com') WHERE post_type = 'attachment';

Mettre à jour les Meta

Utile pour ceux déménageant leurs blogs wordpress d’un site à l’autre.

Requête SQL WordPress :

1
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.oldsiteurl.com','http://www.newsiteurl.com');

Changer le Nom d’Utilisateur par Défaut « Admin »

Cela n’est plus automatique, mais combien de blog WordPress ont pour nom d’Admin… Admin. Je pense que c’est inutile de vous préciser que c’est comme dévérouiller le verrou du haut de sa porte d’entrée… Vous simplifiez la vie à un potentiel cambrioleur. Ici vous vous exposez à une attaque par Brute Force.

Solution:

UPDATE wp_users SET user_login = 'VotreNouvelUtilisateur' WHERE user_login = 'Admin';

Changer le Mot de Passe

Besoin de changer le mot de passe de l’admin ou de n’importe lequel de vos utilisateurs WordPress ? Facile.

Requête SQL WordPress :

UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'your-username';

Changer l’Auteur d’Articles par un Autre Auteur

Besoin de changer d’auteur pour toute une série d’article ? Pour cela il vous faut l’ID des auteurs en question. Où obtenir l’ID ? Rendez-vous sur votre interface WordPress, dans vos profil utilisateurs. Regardez votre barre d’adresse… et recherchez user_id et le tour est jouée.

Requête SQL WordPress :

UPDATE wp_posts SET post_author = 'new-author-id' WHERE post_author = 'old-author-id';

Supprimer les Révisions

Chaque sauvegardes entraine un enregistrement dans la base de donnée. Imaginez que vous ayez sauvegardé votre dernier article 7 fois, alors 7 copies existent dans la base de donnée. Votre blog possède plusieurs centaines de billets…. je vous laisse imaginer le nombre de billets fantômes qu’il doit y avoir sur votre base de donnée.

Requête SQL WordPress :

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'

Supprimer les Meta de vos Billets

Installer ou supprimer un plugin est une tâche pour le moins commune. Mais saviez-vous que des informations resteront tout de même inscrite dans la base de donnée, au niveau du champ post_meta table. En plus de réduire la taille de vos bases, cela redonnera un petit coup de fouet à la vitesse d’exécution de votre blog.

Requête SQL WordPress :

DELETE FROM wp_postmeta WHERE meta_key = 'your-meta-key';

Exporter les Adresses Emails de Vos Commentateurs

Et oui, on peut récupérer toutes les adresses emails des personnes ayant commenté sur votre blog. Sympa non ? Mais attention à vos condition d’utilisation. Vous ne voudriez pas passer pour un vilain spammeur je suis sur.

Requête SQL WordPress

SELECT DISTINCT comment_author_email FROM wp_comments;

Once you have the result, under Query results operations, select export to export all the emails in phpMyAdmin.

Supprimer tout les Pingback

Trop populaire ? Besoin de faire de la place dans ces milliers de Pingback qui polluent votre base ? Chanceux !

Requête SQL WordPress :

DELETE FROM wp_comments WHERE comment_type = 'pingback';

Supprimer vos Commentaires Spam

Besoin de supprimer en masse des commentaire classés comme Spam ? Facile !

Requête SQL WordPress :

DELETE FROM wp_comments WHERE comment_approved = 'spam';
  • 0 = Commentaire en cour de modération
  • 1 = Commentaire approuvé
  • spam = Commentaire classé comme Spam

Identifier des Tags Non Utilisés

Si vous supprimé manuellement des billets dans WordPress, directement à partir de votre base de donnée alors il vous faudra aussi effacer les tags en relations.

Requête SQL 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;

À Vot’ Bon Coeur

Vous aussi vous connaissez des requêtes SQL permettant de se simplifier la vie sous WordPress ? Fait tourné !

Merci de nous aider à nous faire connaitre ;)

Il suffit de cliquer sur l'un de ces boutons :



          


Inscrivez-vous à notre Newsletter

 
Mots Clés Référencement : Article MySQL

Qui à écrit l'article "WordPress, 13 Requêtes SQL Indispensables" ?

Responsable de l'agence web ecommerce éponyme, j'ai décidé de créer ce blog ecommerce pour mettre à disposition de tous des conseils et astuces sur le ecommerce, le référencement, les réseaux sociaux, l'emailing et tout ce qui touche de prés ou de loin au ecommerce.

Voir tous les billets écrits par

8 Commentaires pour "WordPress, 13 Requêtes SQL Indispensables"

  1. ouguiliang 4 décembre 2011 à 5 h 33 min · Répondre

    après visite sur http://www.bigblog.fr/ je me demande si WP-DBManager à pas une faille.quand à la sauvegarde de la bdd: je conseille de sauvegarder séparément la structures et les données.merci pour les différente requête, j’en avais besoin !

  2. David Dupré 3 février 2012 à 9 h 02 min · Répondre

    Merci c’est pratique d’avoir toutes ces requêtes, surtout celles concernant les problématiques de migration.

  3. Tony 14 janvier 2013 à 23 h 59 min · Répondre

    Super ressource assez complète. Je garde votre article en bookmark, ça me sera surement utile et je n’aurais plus qu’à faire un copier/coller de ces requêtes SQL pour gagner du temps. Je pense même qu’il serait judicieux de mettre en place un CRON pour automatiser certaines tâches qui consiste à purger la table.
    Il faut continuer de nous arroser avec des articles de cette qualité.
    Merci encore.
    Tony Articles récents..Éviter les requêtes dans des bouclesMy Profile

  4. Olivier C 7 mai 2013 à 6 h 30 min · Répondre

    Remarquez que plusieurs de vos requêtes est en fait la même qui s’effectue directement sur le contenu des articles (post-content). Et avec cette dernière on peut donc imaginer n’importe quel remplacement de chaine de caractères. Par exemple, pour le mot majuscule « Ecoute » que l’on voudrait écrire plus proprement par « Écoute » on aurait ceci :

    UPDATE xp_posts SET post_content = REPLACE(post_content, ‘ Ecoute’, ‘ Écoute’);

    Ou encore, l’accent sur le A majuscule en début de phrase (À) :

    UPDATE xp_posts SET post_content = REPLACE(post_content, ‘ A ‘, ‘ A ‘);

    Dans tous les cas il faut être prudent dans les remplacement des chaines pour ne pas altérer un mot présent dans le permaliens d’un article (pour notre premier exemple : domaine.com/blala-Ecoute-blala/), c’est pourquoi j’ai mis un espace avant le mot : ainsi je suis sur qu’il s’agit d’un mot et non d’un permalien. Un espace après le mot c’est plus délicat : il peut y avoir une ponctuation, comme une virgule (sauf dans le cas du À majuscule).

  5. Olivier C 7 mai 2013 à 6 h 34 min · Répondre

    Erratum : dans les requêtes j’ai mis un mauvais préfixe sur la table : après UPDATE il faut mettre « wp_posts ». Vous pouvez modifier mon message en conséquence et supprimer celui-ci.
    Olivier C Articles récents..Grégoire l’Illuminateurchristus.frMy Profile

  6. Sme 28 juillet 2013 à 9 h 50 min · Répondre

    Merci pour votre article bien utile.

    Cependant, j’ai réalisé une requete différente de la votre pour identifier les tag non utilisés.
    J’ai remarqué que certain tag possédait un 0 dans la colonne count de wp_term_taxonomy mais qu’il y avait quand meme une relation dans la table wp_term_relationships.

    J’avais alors réalisé cette requete pour être sur que le tag n’ai aucun lien avec un article :

    select * from wp_terms term
    inner join wp_term_taxonomy taxo on taxo.term_id = term.term_id and taxo.taxonomy = ‘post_tag’
    left join wp_term_relationships rel on rel.term_taxonomy_id = taxo.term_taxonomy_id
    where
    rel.object_id is null;

    Auriez-vous une idée de pourquoi il existe une relation dans wp_term_relationships alors que le count de wp_term_taxonomy est à 0 ?

    Le fait de supprimer directement tous les tags avec votre requete n’est pas trop direct ?

    Merci
    Sme Articles récents..#Test station d’accueil / chargement smartphone / tabletteMy Profile

Ils en parlent sur le Web

  1. 13 Requêtes SQL pour Wordpress | | Inside Da PressInside Da Press
  2. WordPress, 13 Requêtes SQL Indispensables - Blog WordPress & SEO | Ecommerce WordPress | Scoop.it

Laisser un commentaire

CommentLuv badge

comm comm comm