Mam bloga opartego na Wordpressie. Blog jest mocno rozbudowany i ostatnio zauważyłem, że w niektórych postach powtarzają się komentarze - czasami po 2 czy 3 razy. Ogólnie komentarzy jest naprawdę sporo i postów też, więc postanowiłem napisać skrypt który wyczyściłby tabelę wp_comments z niechcianych duplikatów. Chciałem, żeby scrypt porównywał ze sobą komentarze z danego posta i usuwał wszytkie powtórzone (nawet jeśli autor jest niby inny).
Napisałem coś takiego:
<?php include_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php' ); $comments = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."_comments" ." ORDER BY comment_post_ID, comment_content"); $prev = NULL; foreach($comments as $comment) { if ($prev && $prev->comment_content == $comment->comment_content && $prev->comment_post_ID == $comment->comment_post_ID ) { $wpdb->query("DELETE FROM ".$wpdb->prefix."_comments WHERE comment_ID == ".$comment->comment_ID); } else $prev = $comment; } $wpdb->print_error(); ?>
Na razie wgrałem ten plik pod nazwą test.php na serwer do folderu gdzie jest wp-config.php. Jak odpalam go z przeglądarki http://nazwadomeny.pl/test.php to nie wywala żadnych błędów (czyli niby działa) ale efektów brak. Żaden ze zduplikowanych komentarzy nie został usunięty.
Czy może mi ktoś wskazać, gdzie popełniłem błąd?