Requêtes MySQL indispensables pour WordPress
Le coeur de WordPress résulte dans sa base de données. Et je pense que nombreux sont ceux qui se sont retrouvés dans une situation difficile lors d’une migration d’hébergement ou de changement d’URL.
Alors voilà une série de requêtes indispensables lorsqu’on pratique WordPress …
Avertissement : Avant toutes modifications, il est vivement conseillé de faire une sauvegarde de votre base de données.
Pour se connecter à votre base WordPress, vous pouvez utiliser soit PhpMyAdmin ou directement en ligne de commande avec mysql.
Préfixe de la base
Par défaut, WordPress construit ses tables avec le préfixe “wp_” mais vous pouvez le changez lors de l’installation. Donc avant toutes modifications veuillez vérifier votre préfixe.
Vous trouverez l’information dans votre fichier de configuration wp-config.php, il y a une entrée $table_prefix.
Requêtes de statistiques
#1 – Nombre d’articles publiés en 2013
SELECT COUNT(*) FROM wp_posts WHERE post_status="publish" AND year(post_date) = 2013;
Cette requête vous retourne le nombre d’articles publiés en 2013.
#2 – Nombre total de commentaires validés pour vos articles en 2013
SELECT SUM(comment_count) FROM wp_posts WHERE post_status="publish" AND year(post_date) = 2013 GROUP BY post_status;
Cette requête MySQL vous retourne le nombre des commentaires validés au cours de l’année 2013.
#3 – Top 10 des articles les plus commentés en 2013
SELECT post_title,comment_count FROM wp_posts WHERE post_status="publish" AND year(post_date) = 2013 ORDER BY comment_count DESC LIMIT 0,10;
Cette requête affiche la liste des 10 articles ayant reçu le plus de commentaires en 2013.
#4 – Top 10 des meilleurs commentateurs sur votre site en 2013
SELECT comment_author,COUNT(comment_count) AS F01 FROM wp_comments,wp_posts WHERE comment_approved=1 AND comment_post_ID=ID AND comment_date BETWEEN '2010-01-01' AND '2010-12-31' GROUP BY comment_author ORDER BY F01 DESC LIMIT 0,10;
Cette requête affiche la liste des 10 lecteurs ayant le plus commenté sur votre site en 2013.
Une nouvelle fois, vous pouvez faire varier l’intervalle de temps.
De là à créer un widget pour afficher le Top commentateur… il n’y a qu’un pas !
Requêtes sur les URLs de WordPress
#5 – Changer l’URL du site et l’URL d’installation (Siteurl et Homeurl)
UPDATE wp_options SET option_value = replace(option_value, 'http://www.vieuxsite.fr', 'http://www.nouveausite.fr') WHERE option_name = 'home' OR option_name = 'siteurl';
WordPress stocke le chemin absolu de l’URL de votre site et de l’accueil dans la base de données.
Si vous changez votre nom de domaine, votre site ne fonctionnera plus, et donc cette requête se révèle très utile.
#6 – Changer les liens de vos billets (GUID)
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.vieuxsite.fr', 'http://www.nouveausite.fr');
Après avoir migré votre blog d’un ancien domaine vers un nouveau domaine, vous aurez besoin de modifier les URLs pour le champ GUID dans la table wp_posts
. Un point important pour éviter les liens morts.
#7 – Changer les URLs de contenu
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.vieuxsite.fr', 'http://www.nouveausite.fr');
Pour rappel, les liens présents dans vos articles et pages de WordPress sont inscrites en chemin absolu dans la base de données – et non pas en relatif. Vous devez donc là encore indiquer l’adresse du nouveau site.
#8 – Changer le chemin des images seulement
UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://www.vieuxsite.fr', 'src="http://www.nouveausite.fr');
Si vous avez décidé d’héberger vos images dans le cloud, il est nécessaire de changer massivement les liens pointant vers chacune de vos images.
Il est également nécessaire de mettre à jour le GUID des fichiers joints :
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.vieuxsite.fr', 'http://amazon.nouveausite.fr') WHERE post_type = 'attachment';
#9 – Mettre à jour les meta de vos articles
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.vieuxsite.fr','http://www.nouveausite.fr');
De la même façon que les requêtes d’URLs précédentes, celle-ci agira sur les différentes informations insérées dans vos articles comme les custom fields pour mettre à jour les adresses.
#10 – Changer le mot de passe de votre administrator
UPDATE wp_users SET user_pass = MD5('votremotdepasse') where user_login = 'admin';
Cette requête vous permet de changer votre mot de passe de l’admin. Vous pouvez remplacer admin par le pseudo que vous souhaitez modifier. Maintenant si vous n’êtes pas certain du pseudo vous pouvez le verifier en exécutant cette requête:
SELECT ID, user_login, user_pass FROM wp_users
Et voilà , maintenant vous êtes armés pour affronter les problèmes classiques que l’on rencontre avec WordPress. Si vous avez d’autres requêtes intéressantes, je suis preneur.