• WORDPRESS > commandes SQL de maintenance

      Supprimer les commentaires indésirables :

      DELETE FROM wp_comments WHERE comment_approved="spam"

       

      Supprimer les commentaires “En attente” :

      DELETE FROM wp_comments WHERE comment_approved="0″

       

      Supprimer les sauvegardes automatiques :

      DELETE FROM wp_posts WHERE post_type="revision"

       

      Supprimer les brouillons :

      DELETE FROM wp_posts WHERE post_status="draft"

       

      Si on n’utilise pas la médiathèque, supprimer les attachements :

      DELETE FROM wp_posts WHERE post_type="attachment"

       

      Supprimer tous les articles :

      DELETE * FROM wp_posts WHERE post_type="post"

       

      Supprimer toutes les pages :

      DELETE * FROM wp_posts WHERE post_type="page"

      SUPPRIMER LES RÉVISIONS

      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';

      Purger les SPAM des commentaires

      DELETE FROM wp_comments WHERE comment_approved = 'spam';

       

      Pour supprimer tous les commentaires en attentes de modération : remplacer ‘spam’ par ‘0’. (si grosse attaque)

      Supprimer tous les commentaires publiés : remplacer ‘spam’ par ‘1’.

      Purger les données meta de commentaires supprimés

      DELETE FROM wp_commentmeta WHERE comment_id NOT IN ( SELECT comment_id FROM wp_comments )

      Supprimer les entrées liées à Akismet

      En supprimant ces données et particulièrement ceux liées à des spams qui ont été supprimés, il est possible d’économiser plusieurs Mo de données peu utiles.

      DELETE FROM `wp_commentmeta` WHERE `meta_key` LIKE '%akismet%'

      Purger les données meta des articles qui n’existent plus

      DELETE pm
      FROM wp_postmeta pm
      LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
      WHERE wp.ID IS NULL

      Supprimer tous les pingbacks

      DELETE FROM wp_comments WHERE comment_type = 'pingback';

      Supprimer un shortcode dans le contenu d’un article

      UPDATE wp_post SET post_content = REPLACE(post_content, '[vieux_shortcode]', '' );

      Supprimer un champ personnalisé

      DELETE FROM wp_postmeta WHERE meta_key = 'meta_a_supprimer';

      Supprimer les mots-clés (tag) non-utilisés

      DELETE FROM `wp_terms`
      WHERE `term_id` IN (
                       SELECT `term_id`
                       FROM `wp_term_taxonomy`
                       WHERE `count` = 0 );
      
      DELETE FROM wp_term_taxonomy WHERE term_id NOT IN ( SELECT term_id FROM wp_terms );
      
      DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN ( SELECT term_taxonomy_id FROM wp_term_taxonomy );

      Purger le cache des flux

      Par défaut WordPress enregistre un cache des flux (RSS, ATOM …). Pour purger ce cache et libérer un grand nombre d’enregistrement de la table wp_options :

      DELETE FROM wp_options WHERE option_name LIKE ('_transient%_feed_%')
      DELETE FROM wp_options WHERE option_name LIKE ('%_transient%_feed_%')

      Supprimer les vieux articles

      Pour certains type de blog évènementiel, il convient de supprimer du contenu dépassé. Même si ce n’est pas recommandé en terme de référencement sur Google, il est possible de supprimer tous les vieux articles, vieux d’il y a plus de 365 jours (à adapter) grâce à cette requête:

      DELETE FROM wp_posts WHERE post_type = 'post' AND DATEDIFF(NOW(), `post_date`) > 365

      Il est aussi possible de supprimer les articles à partir d’une date, plutôt qu’à partir d’un nombre de jours. Pour cela, il faut privilégier cette requête:

      DELETE FROM wp_posts WHERE post_type = 'post' AND post_date < '2010-12-31 23:59:59'

      Supprimer l’information du « user agent » de chaque commentaire

      UPDATE wp_comments SET 'comment_agent' = '';

      Nettoyer la table wp_posts

      supprimer les publications inutiles (brouillons, posts orphelins, spams, révisions, etc.) :

       

      DELETE FROM wp_posts WHERE post_status = 'trash';    -- poubelle
      DELETE FROM wp_posts WHERE post_status = 'draft';    -- brouillons

      Supprimer les révisions (gardez les 3 dernières par post si nécessaire) :

      DELETE FROM wp_posts WHERE post_type = 'revision'
      AND post_parent IN (SELECT ID FROM wp_posts WHERE post_type = 'post');

      Supprimer les posts orphelins

      DELETE FROM wp_posts WHERE post_type = 'post' AND ID NOT IN (SELECT post_id FROM wp_postmeta);

      Nettoyer les métadonnées associées

      Pour éviter les entrées fantômes dans wp_postmeta :

      DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts);

      Optimiser la table (libérer l’espace)

      Après les suppressions, exécutez :

      OPTIMIZE TABLE wp_posts, wp_postmeta;

       

      ⚠️ Les révisions peuvent être utiles pour revenir en arrière.

      Exemple complet pour supprimer 1000 révisions anciennes

      DELETE FROM wp_posts WHERE post_type = 'revision' ORDER BY post_date ASC LIMIT 1000;

      Résultat

      Posts orphelins (sans métadonnées) :

      SELECT * FROM wp_posts WHERE post_type = 'post' AND ID NOT IN (SELECT post_id FROM wp_postmeta);

       

      Voili, voilou !

 

Aucun commentaire

 

Laissez un commentaire