27 10 10 Autmomatyczne usuwanie spamu w Wordpresie
WordPress posiada dobry filtr spamu o nazwie Akismet, który potrafi odróżnić komentarze zostawione przez normalnych użytkowników bloga od tych wysyłanych przez spamerów. Komenarze takie są odpowiednio oznaczane i umieszczane w bazie danych. Nie pozostaje nic innego jak permanentnie usunąć wadliwej treść, co można wykonać z pomoca kilku linii kodu.
Komentarze w Wordpresie są przechowywane w tabeli wp_comments (zakładam domyślny prefiks). Jej strukturę można znaleźć w tym wpisie.
Informacje o tym czy komentarz jest spamem są zapisane w kolumnie o nazwie comment_approved. W przypadku spamu, przyjmuje ona wartość "spam". Mając powyższe informacje, aby usunąć spam z bazy danych, możemy posłużyć się kodem jak ten poniżej:
add_action('admin_head','autodelete_spam');
function autodelete_spam(){
global $wpdb;
if(is_super_admin()){
$wpdb -> query('DELETE FROM wp_comments WHERE comment_approved = "spam"');
}
}
Usuwanie spamu odbywa się za pomocą funkcji autodelete_spam, w której definiujemy proste zapytanie do bazy danych mające na celu usunąć rekordy z kolumną comment_approved o wartości "spam".
Funkcję podłączamy pod akcję admin_head ( jest to odpowiednik wp_head w panelu administracyjnym Wordpresa ).
Kod umieszczamy w pliku functions.php aktywnego motywu.
Usuwanie spamu będzie wykonywane przy każdym zalogowaniu się lub odświeżeniu strony panelu administracyjnego przez administratora bloga. Nie jest to oczywiście rozwiązanie optymalne, aczkolwiek działa całkiem nieźle a do tego umożliwia zrzucenie pewnej pracy z własnych barków na serwer. Every little bit helps, jek mówią Anglicy.
Autor wpisu jest blogerem, programistą PHP, administratorem Linux oraz twórcą blogów
RSS Subskrybuj wpisy bloga