Magazine Blog

15 Requêtes SQL très utiles pour WordPress

Publié le 15 janvier 2013 par Wpformation @wpformation

WordPress fonctionne avec une base de données MySQL. Toutes les données WordPress comme 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. Le plugin SQL Executioner vous permet également d’exécuter des requêtes directement depuis l’admin WordPress.

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="http://www.anciensiteurl.com', 'src="http://votrecdn.nouveausiteurl.com');

Vous devrez également changer le GUID des images jointes :

UPDATE wp_posts SET  guid = REPLACE (guid, 'http://www.anciensiteurl.com', 'http://votrecdn.nouveausiteurl.com') WHERE post_type = 'attachment';

Changer le Nom d’Utilisateur par Defaut "Admin"

Chaque installation WordPress  par défaut crée un compte avec un nom d'utilisateur "Admin" par défaut. Cela peut être un problème de sécurité car un pirate peut plus facilement forcer  votre admin WordPress.

UPDATE wp_users SET user_login = '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;

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

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 :

UPDATE wp_options SET option_value = '' 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');

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_post SET 'post_content' = REPLACE ('post_content', '[AncienShortcode]', 'Rien ou NouveauShortcode' ) ;

Sources & autres ressources pour cet article

  • Onextrapixel.com librement traduit et adapté
  • Catswhocode.com pour le nettoyage SQL
  • Junksource.com propose 20 requêtes
  • WordPress-fr.net en propose une liste sur le forum
  • 22 requêtes MySQL proposées par Aurélien

Retour à La Une de Logo Paperblog
Par Yoann Aubeuf-Hacquin
posté le 07 mars à 15:42

Bonjour,

Je recherche à changer la date des post sur Wordpress :

Voilà mes tentatives :

UPDATE wpposts SET postdate = FROMUNIXTIME( UNIXTIMESTAMP('2016-03-07 12:00:00') + FLOOR(0 + (RAND() * 31557600))) WHERE post_status = 'publish';

UPDATE wpposts SET postdate = REPLACE ( post_date, ’2015-09-23′, ’2016-03-07′)

UPDATE wpposts SET poststatus = 'future' WHERE YEAR(postdate)=2015 AND posttype='post';

UPDATE wpposts SET postdate = '2015-09-25 10:00:27' WHERE YEAR(postdate)=2015 AND posttype='post';

UPDATE wpposts SET postdategmt = '2015-09-25 10:00:27' WHERE YEAR(postdate)=2015 AND post_type='post';

UPDATE wpposts SET postmodified = '2015-09-25 10:00:27' WHERE YEAR(postdate)=2015 AND posttype='post';

UPDATE wpposts SET postmodifiedgmt = '2015-09-25 10:00:27' WHERE YEAR(postdate)=2015 AND post_type='post';

Pouvez vous m'aider ?

A propos de l’auteur


Wpformation 4979 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte