Chi Siamo Area Clienti Promo del Mese Dicono di Noi Portfolio FAQ Blog
Senza categoria

Akismet: Configurazione Avanzata, Filtri e Hooks

Gianluca Gentile
Gianluca Gentile
· 8 min di lettura

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.

Configurazione avanzata del plugin 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:

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);

Statistiche avanzate e monitoraggio personalizzato di Akismet

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;
});

Plugin Akismet con configurazione avanzata tramite hooks e filtri

Ottimizzare le Prestazioni

Per siti ad alto traffico, ecco alcuni suggerimenti per ottimizzare le prestazioni di Akismet:

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 è:

  1. Verificare che Akismet sia attivo con is_plugin_active(akismet/akismet.php)
  2. Verificare che la API key sia configurata con Akismet::get_api_key()
  3. Utilizzare Akismet::http_post() per inviare i dati alla verifica
  4. 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:

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:

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:

#Akismet #Avanzata #Configurazione #Filtri #Hooks #PHP