Sommaire
- 1 Avant de commencer
- 1.1 Supprimer tous les commentaires avec une URL spécifique
- 1.2 Supprimer tous les rétroliens
- 1.3 Fermer les rétroliens dans tous les messages à la fois
- 1.4 Supprimer en bloc tous les commentaires non approuvés
- 1.5 Supprimer En bloc tous les commentaires marqués comme spam
- 1.6 Supprimer toutes les révisions et données associées
- 1.7 Supprimer les shortcodes inutilisés dans le contenu des articles
- 1.8 Remplacer un mot par un autre dans le contenu d’un message
- 1.9 Ajouter un champ personnalisé à tous les articles
- 1.10 Supprimer les messages très anciens
- 1.11 Obtenir une liste des emails de tous les commentateurs
- 1.12 Attribuer aux articles un nouvel auteur
- 1.13 Mettre à jour le mot de passe d’un utilisateur
- 1.14 Désactivation en blocs de tous les plugins
- 1.15 Réduire la taille de votre base de données en supprimant les « transients »
- 1.16 Se débarrasser des tags inutilisés
- 1.17 Modifier tous vos URL / noms de domaine
Traduction FR : | IT-Central.fr |
Auteur & Source : | catswhocode.com |
WordPress stocke beaucoup de choses dans la base de données. À l’aide de requêtes SQL, vous pouvez facilement effectuer des tâches. Sans cela, ces tâches prendraient beaucoup de temps et de difficultés. Dans cet article, j’ai compilé un guide ainsi que plus de 15 requêtes SQL prêtes à l’emploie pour la gestion des commentaires et des utilisateurs, l’édition en lots de vos messages, le nettoyage de votre base de données, et bien d’autres.
Avant de commencer
Il existe plusieurs façons d’exécuter des requêtes SQL. La plupart d’entre vous ont probablement cPanel d’installé sur votre serveur.
Pour accéder à phpMyAdmin depuis cPanel, il suffit de se connecter à cPanel et de cliquer sur l’icône phpMyAdmin dans la section Bases de données.
Une fois que vous êtes entré dans PhpMyAdmin, vous devez d’abord sélectionner votre base de données de blog, puis cliquer sur l’onglet SQL pour afficher la page qui vous permet d’exécuter n’importe quel type de requêtes.
Une autre option est d’utiliser un plugin nommé SQL Executioner. Comme le dit le nom, le but de ce plugin est de vous permettre d’exécuter des requêtes SQL sur votre base de données WordPress à partir du tableau de bord.
Remarques importantes:
- Toujours avoir une nouvelle sauvegarde de votre base de données lors de l’application de ces requêtes SQL. Vous pouvez le faire manuellement ou utiliser un plugin WordPress tel que WP-DBManager.
- Cet article utilise par défaut le préfixe de table par wp_. Assurez-vous de modifier les préfixes pour qu’ils correspondent à ceux utilisés par votre base de données.
Supprimer tous les commentaires avec une URL spécifique
Le Spam est définitivement un problème majeur avec les blogs WordPress, heureusement SQL est là pour vous aider.
1 | DELETE from wp_comments WHERE comment_author_url LIKE "%spamurl%" ; |
Supprimer tous les rétroliens
1 | DELETE FROM wp_comments WHERE comment_type="trackback"; |
Fermer les rétroliens dans tous les messages à la fois
1 | UPDATE wp_posts SET ping_status = 'closed'; |
Supprimer en bloc tous les commentaires non approuvés
1 | DELETE from wp_comments WHERE comment_approved = '0'; |
Supprimer En bloc tous les commentaires marqués comme spam
Vous avez obtenu 5400 commentaires de spam et ne voulez pas passer par une douzaine de pages pour les supprimer? Cette requête est faites pour vous.
1 | DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam'; |
Supprimer toutes les révisions et données associées
Rendre votre base de données plus légère en supprimant les révisions des articles et toutes les données associées. Une requête que je lance sur mes blogs tous les 3-6 mois.
1 2 | 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 shortcodes inutilisés dans le contenu des articles
Les shortcodes sont vraiment cool, mais à un certain point, vous devez être en mesure de supprimer ceux inutilisés. Plutôt que d’éditer chacun de vos messages, exécutez cette requête simple! Remplacez par le code court inutilisé à supprimer.
1 | UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' ) ; |
Remplacer un mot par un autre dans le contenu d’un message
Cela peut être très utile pour mettre à jour un lien, par exemple.
1 | UPDATE wp_post SET post_content = replace(post_content, 'old_word', 'new_word' ) ; |
Ajouter un champ personnalisé à tous les articles
Si vous utilisez toujours un champ personnalisé spécifique, il vaut mieux l’ajouter sur tous les messages en même temps plutôt que de modifier en quantité de chaques messages.
1 2 3 4 5 6 | INSERT INTO wp_postmeta (post_id, meta_key, meta_value) SELECT ID AS post_id, 'MyCustomField' AS meta_key 'myvalue AS meta_value FROM wp_posts WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'MyCustomField') `` AND post_type = 'post'; |
Supprimer les messages très anciens
Tous vos messages sont-ils obsolètes? Voici un moyen facile de les supprimer. Pour obtenir des résultats optimaux, vous devez absolument utiliser les redirections 301 pour rediriger les messages supprimés vers votre page d’accueil ou les versions mises à jour de ces messages.
1 | DELETE FROM wp_posts WHERE post_date < '2010-01-01 00:00:00' AND post_status = 'publish' |
Obtenir une liste des emails de tous les commentateurs
Il ne s’agit pas de faire n’importe quoi avec les emails de vos commentateurs (sauf avec leur consentement) mais voici la manière d’obtenir une liste de tous les emails stockés dans la table wp_comments. Notez l’utilisation de DISTINCT pour vous assurer que la requête ne renverra pas de doublons.
1 | SELECT DISTINCT comment_author_email FROM wp_comments; |
Attribuer aux articles un nouvel auteur
Si, pour une raison ou une autre, vous souhaitez transférer des messages d’un auteur à un autre, cette requête est faite pour vous. Vous devez mettre à jour cette requête avec l’ancien auteur et les nouveaux ID d’auteur avant de l’exécuter.
1 | UPDATE wp_posts SET post_author = 'new-author-id' WHERE post_author = 'old-author-id'; |
Mettre à jour le mot de passe d’un utilisateur
1 | UPDATE wp_users SET user_pass = MD5( 'new_password' ) WHERE user_login = 'username'; |
Désactivation en blocs de tous les plugins
Dans le cas où quelque chose n’irait pas avec votre blog, cela peut-être une bonne chose de désactiver tous vos plugins, au cas où l’un d’entre eux serait la cause du problème. Voici comment vous pouvez les désactiver par lot en utilisant une requête SQL.
1 | UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins'; |
Réduire la taille de votre base de données en supprimant les « transients »
Les « transient » sont des moyens simples et standardisés de stocker temporairement les données mises en cache dans la base de données en lui donnant un nom personnalisé et un délai après lequel il expirera et sera supprimé. Mais parfois, les « transient » définis par WP et d’innombrables plugins peuvent prendre beaucoup d’espace dans votre base de données. Bonne nouvelle, les transitoires peuvent être retirés en toute sécurité grâce à cette simple requête.
1 | DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%'); |
Comme votre base de données est probablement remplie de nombreux tags que vous n’utilisez plus, vous devriez envisager de les nettoyer avec les éléments suivants:
1 2 | DELETE 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; |
Modifier tous vos URL / noms de domaine
WordPress stocke des URL absolues dans la base de données. Ce qui signifie que si vous changez votre nom de domaine de votre blog, vous devrez mettre à jour chaque URL absolue. À l’aide de SQL, c’est extrêmement simple à faire. Il suffit de modifier les trois requêtes ci-dessous et de mettre à jour les anciens et nouveaux noms de domaine, puis de les exécuter. Et c’est terminé!
1 2 3 | UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldsite.com', 'http://www.newsite.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://www.oldsite.com','http://www.newsite.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldsite.com', 'http://www.newsite.com'); |