Akismet: Configurazione Avanzata, Filtri e Hooks
Akismet funziona egregiamente con le impostazioni predefinite, ma per gli sviluppatori WordPress e gli amministratori avanzati offre un’ampia gamma di filtri e hooks che permettono di personalizzare ogni aspetto del comportamento del plugin. Dalla modifica dei dati inviati all’API, alla gestione del verdetto spam, passando per la personalizzazione dell’interfaccia di amministrazione, in questa guida esploriamo tutte le possibilità di configurazione avanzata di Akismet.

Costanti di Configurazione in wp-config.php
Akismet supporta diverse costanti che possono essere definite nel file wp-config.php per modificare il comportamento del plugin senza toccare l’interfaccia di amministrazione:
WPCOM_API_KEY: Definisce la API key di Akismet a livello di codice.
define(WPCOM_API_KEY, la-tua-api-key);
Quando questa costante è definita, il campo API key nell’interfaccia di amministrazione viene disabilitato. Questo è utile per deployment automatizzati e per impedire modifiche accidentali della chiave.
AKISMET_VERSION: Questa costante è definita internamente dal plugin e indica la versione attuale di Akismet. Non va modificata, ma può essere letta nel codice per verificare la versione installata.
Filtri per Modificare i Dati Inviati all’API
Il filtro più potente di Akismet è akismet_request_args, che permette di modificare i dati inviati ai server di Akismet prima dell’analisi:
add_filter(akismet_request_args, function($request) {
// Aggiungi un campo personalizzato
$request[custom_field] = valore;
return $request;
});
I campi principali nell’array $request sono:
blog— L’URL del sitouser_ip— L’IP del commentatoreuser_agent— Il browser del commentatorereferrer— La pagina di provenienzacomment_type— Il tipo di commento (comment, pingback, trackback)comment_author— Il nome dell’autorecomment_author_email— L’email dell’autorecomment_author_url— L’URL dell’autorecomment_content— Il contenuto del commento
Questo filtro è utile per inviare informazioni aggiuntive ad Akismet che possano migliorare l’accuratezza del filtro, o per anonimizzare dati sensibili prima della trasmissione.
Filtro per Ignorare Specifici Commenti
Il filtro akismet_comment_nonce permette di controllare se Akismet deve verificare il nonce del commento:
add_filter(akismet_comment_nonce, __return_true);
Un altro filtro molto utile è akismet_get_api_key, che permette di fornire la API key in modo dinamico, ad esempio leggendola da una variabile d’ambiente:
add_filter(akismet_get_api_key, function() {
return getenv(AKISMET_API_KEY);
});
Personalizzare il Verdetto Spam
Il filtro akismet_spam_caught viene eseguito dopo che Akismet ha classificato un commento come spam. Puoi utilizzarlo per eseguire azioni personalizzate:
add_action(akismet_spam_caught, function() {
// Notifica via email lamministratore
wp_mail(admin@tuosito.com, Spam intercettato, Akismet ha bloccato un commento spam.);
});
Il filtro pre_comment_approved può essere utilizzato per sovrascrivere il verdetto di Akismet in determinati casi:
add_filter(pre_comment_approved, function($approved, $commentdata) {
// Approva sempre i commenti da un IP specifico (whitelist)
if ($commentdata[comment_author_IP] === 192.168.1.100) {
return 1;
}
return $approved;
}, 20, 2);

Modificare il Periodo di Conservazione dello Spam
Per impostazione predefinita, Akismet elimina i commenti spam dopo 15 giorni. Puoi modificare questo periodo tramite il filtro akismet_delete_comment_interval:
add_filter(akismet_delete_comment_interval, function() {
return 7; // Elimina dopo 7 giorni
});
Impostare un valore più basso può essere utile per siti ad alto traffico dove la cartella spam si riempie rapidamente. Un valore più alto ti dà più tempo per revisionare i potenziali falsi positivi.
Hook per l’Interfaccia di Amministrazione
Akismet espone diversi hook relativi all’interfaccia di amministrazione:
akismet_tabs: Permette di aggiungere tab personalizzati alla pagina di configurazione di Akismet.
akismet_comment_row_action: Aggiunge azioni personalizzate nella riga di ogni commento nella lista dei commenti.
akismet_comment_column_row: Aggiunge contenuto alla colonna Akismet nella tabella dei commenti.
Lavorare con le Classi PHP di Akismet
Akismet espone le proprie funzionalità tramite la classe Akismet. I metodi pubblici più utili sono:
Akismet::get_api_key() — Restituisce la API key attualmente configurata.
Akismet::verify_key($key, $ip = null) — Verifica la validità di una API key.
Akismet::check_key_status($key, $ip = null) — Restituisce lo stato della chiave (valida, scaduta, sospesa).
Akismet::http_post($request, $path, $ip = null) — Effettua una chiamata HTTP ai server di Akismet. Utile per integrazioni personalizzate.
Verificare lo Spam Programmaticamente
Se hai bisogno di verificare contenuti personalizzati (non commenti WordPress standard), puoi utilizzare l’API di Akismet direttamente:
$data = array(
blog => get_option(siteurl),
user_ip => $_SERVER[REMOTE_ADDR],
user_agent => $_SERVER[HTTP_USER_AGENT],
comment_type => contact-form,
comment_author => $nome,
comment_author_email => $email,
comment_content => $messaggio,
);
$query_string = http_build_query($data);
$response = Akismet::http_post($query_string, comment-check);
$is_spam = ($response[1] === true);
Questo approccio è particolarmente utile se hai sviluppato un form personalizzato (senza utilizzare plugin come Contact Form 7 o WPForms) e vuoi integrare la protezione anti-spam di Akismet.
Gestire i Commenti via WP-CLI
Akismet supporta WP-CLI per operazioni avanzate da riga di comando:
wp akismet stats — Mostra le statistiche di Akismet
wp akismet recheck — Ri-analizza tutti i commenti in attesa tramite Akismet
Il comando recheck è particolarmente utile se hai importato commenti da un altro sito o se sospetti che il filtro non fosse attivo durante un periodo specifico.
Debugging e Logging
Per il debugging, puoi abilitare il log delle chiamate API di Akismet aggiungendo al file wp-config.php:
define(WP_DEBUG, true);
define(WP_DEBUG_LOG, true);
Con il debug attivo, Akismet registra le chiamate API e le risposte nel file wp-content/debug.log. Questo è utile per diagnosticare problemi di connessione o risultati inattesi del filtro.
Puoi anche aggiungere un log personalizzato tramite il filtro akismet_request_args:
add_filter(akismet_request_args, function($request) {
error_log(Akismet check: . print_r($request, true));
return $request;
});

Ottimizzare le Prestazioni
Per siti ad alto traffico, ecco alcuni suggerimenti per ottimizzare le prestazioni di Akismet:
- Cache delle risposte API: Se lo stesso IP invia più commenti in rapida successione, Akismet gestisce internamente la cache delle risposte per evitare chiamate API ridondanti
- Ridurre il periodo di conservazione dello spam: Meno commenti spam nel database significa query più veloci nella sezione commenti
- Disabilitare i commenti dove non servono: Chiudi i commenti sulle pagine statiche e sugli articoli molto vecchi per ridurre le superfici di attacco
- Utilizzare object caching: Un sistema di object caching (Redis, Memcached) accelera le operazioni del database relative ai commenti
Integrare Akismet in Plugin Custom
Se stai sviluppando un plugin WordPress che accetta input dagli utenti (form, recensioni, annunci), puoi integrare Akismet per la verifica anti-spam. L’approccio consigliato è:
- Verificare che Akismet sia attivo con
is_plugin_active(akismet/akismet.php) - Verificare che la API key sia configurata con
Akismet::get_api_key() - Utilizzare
Akismet::http_post()per inviare i dati alla verifica - Gestire il risultato (true = spam, false = legittimo)
Sicurezza degli Hooks
Quando lavori con gli hooks di Akismet, tieni presente le seguenti best practice di sicurezza:
- Non esporre mai la API key nel frontend o nei log accessibili pubblicamente
- Sanitizza sempre i dati prima di inviarli all’API
- Non disabilitare il filtro anti-spam per interi gruppi di utenti senza un buon motivo
- Testa le personalizzazioni in un ambiente di staging prima di applicarle in produzione
Conclusione
La configurazione avanzata di Akismet tramite filtri e hooks apre un mondo di possibilità per gli sviluppatori WordPress. Che tu voglia personalizzare il comportamento del filtro, integrare Akismet in plugin custom o ottimizzare le prestazioni per siti ad alto traffico, gli strumenti sono tutti a disposizione. La chiave è comprendere il flusso di dati del plugin e intervenire nei punti giusti con hook mirati.
Per assistenza nello sviluppo di integrazioni personalizzate con Akismet, contatta il team di G Tech Group. I nostri sviluppatori WordPress sono a tua disposizione.
Continua a Leggere
Questa guida fa parte della nostra serie completa su WordPress. Scopri anche:
- Guide Elementor – Impara a costruire pagine professionali con il page builder più popolare
- Guide WP Rocket – Ottimizza le prestazioni e la velocità del tuo sito
- Guide SEOPress – Migliora il posizionamento sui motori di ricerca
- Guide UpdraftPlus – Proteggi i tuoi dati con backup automatici
Per ulteriori guide, tutorial e approfondimenti sul mondo WordPress, visita il blog di G Tech Group. Se desideri un supporto professionale per il tuo progetto web, contattaci: il nostro team è pronto ad affiancarti in ogni fase.
Migliora il Tuo Sito WordPress
Scopri le nostre guide complete sugli altri plugin essenziali per WordPress: