Ciel ! Mon backup WordPress ne marche plus !
J’ai le backup WordPress qui plante…
je ne me sens pas très bien… Pour ceux qui ont plus de 20 ans cela peut rappeler une vieille chanson. Mais pour tous cela rappelle de mauvais souvenirs quand le plugin que vous utilisez pour faire les backup de votre blog WordPress plante.
Moi cela m’arrive avec le plugin WSD Security.
Ce plugin génère un fichier XML contenant votre blog ! En cas de problème vous pouvez utiliser ce fichier pour restaurer le blog.
Eh bien, ce plugin n’arrivait plus à générer le backup.
Savez-vous à quoi c’était dû ?
Quand il y a trop de données en base il s’embrouille. Notamment, à cause des spams, mais pas que.
Le plugin Akismet fait le trie entre le bon grain et l’ivraie, aka les spams.
Mais il remplit la table wp_commentmeta.
Et si vous avez beaucoup de spam celle-ci grossit, grossit ! Et plus de backup !
Vider la table wp_commentmeta
Première solution, vider et optimiser cette table, au moins quand vous « poubellisez » les spams. Optimiser cela veut dire reconstruire les index de façon à ce que les requêtes sur cette table soient plus rapides.
Pour cela, éditez le fichier wp-admin\edit-comments.php et ajoutez les deux lignes en jaune à l’endroit indiqué.
if ( $doaction ) {
check_admin_referer( ‘bulk-comments’ );
if ( ‘delete_all’ == $doaction && !empty( $_REQUEST[‘pagegen_timestamp’] ) ) {
$comment_status = $wpdb->escape( $_REQUEST[‘comment_status’] );
$delete_time = $wpdb->escape( $_REQUEST[‘pagegen_timestamp’] );
$comment_ids = $wpdb->get_col( « SELECT comment_ID FROM $wpdb->comments WHERE comment_approved = ‘$comment_status’ AND ‘$delete_time’ > comment_date_gmt » );
$doaction = ‘delete’;
$wpdb->query(« DELETE FROM wp_commentmeta WHERE meta_key LIKE ‘%akismet%' »);
$wpdb->query(« OPTIMIZE TABLE wp_commentmeta »);
Vous pouvez lister les spams dans la table wp_comments avec la requête :
SELECT * FROM wp_comments WHERE comment_approved = 'spam'
Autre plugin en cause
J’ai aussi un plugin appelé « Thank Me Later« . Il remplit la table wp_ipsubscribe chaque fois qu’il y a un spam.
Il est donc possible d’exécuter dans la console de MySQL cette requête pour vider la table :
delete from wp_ipsubscribe where email not in (select comment_author_email from wp_comments
Vous pouvez aussi l’intégrer dans le fichier ci-dessus.
$wpdb->query(« delete from wp_ipsubscribe where email not in (select comment_author_email from wp_comments »);
Avez-vous trouvé cela utile ?
Image : Keerati FreeDigitalPhotos.net
Comments ( 6 )