WordPress Avancé
À propos de la leçon

WordPress installe onze tables dans la base de données. Pour le constater, connectez-vous à votre base de données. C’est là où sont stockées toutes les informations de votre site (contenu des articles, des pages, des catégories, des mots-clés, etc., la configuration de WordPress, des extensions, des thèmes, etc., les informations sur les utilisateurs…).

Voici les tables natives de WordPress :

La table wp_commentmeta contient des informations complémentaires concernant les commentaires. Cette table est utilisée par l’extension Akismet, devenue extension native de WordPress, indispensable pour éviter de se faire spammer. Vous la retrouvez dans l’administration, sous l’onglet Extensions.

La table wp_comments contient tous les commentaires des articles et des pages.

La table wp_link (facultative) regroupe tous les liens enregistrés via l’onglet Liens de l’administration. L’onglet Liens n’existe plus depuis la version 3.5, et nécessite l’utilisation de l’extension Link Manager, mais la table est toujours présente pour que les personnes qui l’utilisaient avant ne perdent pas leurs données sur les versions récentes de WordPress..

La table wp_options contient les configurations générales du site (renseignées lors de l’installation du site) et des extensions… parmi les plus importantes ! Lors de la création de thèmes avancés, cette table est également utilisée pour y stocker des informations, grâce à des fonctions de WordPress.

La table wp_postmeta contient les informations complémentaires liées aux articles ou aux pages. Cette table est directement liée à la table wp_posts.

La table wp_posts est la plus importante, elle contient tout le contenu du site. Vous y retrouvez toutes les informations concernant les articles, les pages, les photos, les fichiers PDF et autres médias, ou les produits dans le cas d’extensions e-commerce. 

La table wp_terms contient les catégories et les mots-clés. Cette table est directement liée aux tables wp_term_relationships et wp_term_taxonomy.

La table wp_term_relationships relie les catégories et mots-clés aux différents articles et pages. Cette table est directement liée aux tables wp_terms et wp_term_taxonomy.

La table wp_term_taxonomy est utilisée pour différencier les catégories et les mots-clés, vous y trouvez les informations complémentaires concernant les catégories et les mots-clés. Cette table est directement liée aux tables : wp_terms et wp_term_relationships.

La table wp_usermeta contient les informations complémentaires de tous les utilisateurs ainsi que leur rôle.  

La table wp_users contient tous les utilisateurs ainsi que leur mot de passe, adresse e-mail…
 

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.

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;



Visits: 1