Uma das pestes para quem gerencia blogs são os spams em comentários. Atrapalham, enchem a paciência e nos fazem perder tempo moderando-os. No meu blog pessoal (onde uso WordPress como gerenciador), resolvi fazer um contador de spams. Como?
Nos templates do WordPress o desenvolvedor tem no contexto um objeto $wpdb, que abstrai o banco de dados do mesmo. Ele tem um método, get_results(), onde você pode fazer uma query SQL. No caso, ao invés de chamar a tabela pelo nome dela, podemos usar $wpdb->comments (esse atributo retorna o nome da tabela; vale a pena fazer dessa forma, pois com isso mantemos um certo desacoplamento). A coluna na tabela que marca o status de um comment é a comment_approved; spam é o status para comentários marcados como spam.
Então, o código é:
<?php
global $wpdb;
$spamComments = $wpdb->get_results("SELECT * FROM " . $wpdb->comments . " WHERE comment_approved="spam"");
echo sizeof($spamComments);
?>
No caso, eu poderia ter usado o COUNT do SQL – seria mais performático, inclusive – mas retirei esse código de uma implementação que fiz onde eu precisava da lista de comentários futuramente…