{"id":167226,"date":"2025-05-12T09:00:00","date_gmt":"2025-05-12T09:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/akismet-configurazione-avanzata-filtri-hooks\/"},"modified":"2026-05-30T10:00:00","modified_gmt":"2026-05-30T08:00:00","slug":"akismet-configurazione-avanzata-filtri-hooks","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/akismet-configurazione-avanzata-filtri-hooks\/","title":{"rendered":"Akismet: Configurazione Avanzata, Filtri e Hooks"},"content":{"rendered":"<h2>Akismet: Configurazione Avanzata, Filtri e Hooks<\/h2>\n<p>Akismet funziona egregiamente con le impostazioni predefinite, ma per gli sviluppatori WordPress e gli amministratori avanzati offre un&#8217;ampia gamma di <strong>filtri<\/strong> e <strong>hooks<\/strong> che permettono di personalizzare ogni aspetto del comportamento del plugin. Dalla modifica dei dati inviati all&#8217;API, alla gestione del verdetto spam, passando per la personalizzazione dell&#8217;interfaccia di amministrazione, in questa guida esploriamo tutte le possibilit&#224; di configurazione avanzata di Akismet.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/ak-01-settings.png\" alt=\"Configurazione avanzata del plugin Akismet\" \/><\/p>\n<h3>Costanti di Configurazione in wp-config.php<\/h3>\n<p>Akismet supporta diverse costanti che possono essere definite nel file <code>wp-config.php<\/code> per modificare il comportamento del plugin senza toccare l&#8217;interfaccia di amministrazione:<\/p>\n<p><strong>WPCOM_API_KEY:<\/strong> Definisce la API key di Akismet a livello di codice.<\/p>\n<p><code>define(WPCOM_API_KEY, la-tua-api-key);<\/code><\/p>\n<p>Quando questa costante &#232; definita, il campo API key nell&#8217;interfaccia di amministrazione viene disabilitato. Questo &#232; utile per deployment automatizzati e per impedire modifiche accidentali della chiave.<\/p>\n<p><strong>AKISMET_VERSION:<\/strong> Questa costante &#232; definita internamente dal plugin e indica la versione attuale di Akismet. Non va modificata, ma pu&#242; essere letta nel codice per verificare la versione installata.<\/p>\n<h3>Filtri per Modificare i Dati Inviati all&#8217;API<\/h3>\n<p>Il filtro pi&#249; potente di Akismet &#232; <code>akismet_request_args<\/code>, che permette di modificare i dati inviati ai server di Akismet prima dell&#8217;analisi:<\/p>\n<p><code>add_filter(akismet_request_args, function($request) {<br \/>\n&nbsp;&nbsp;\/\/ Aggiungi un campo personalizzato<br \/>\n&nbsp;&nbsp;$request[custom_field] = valore;<br \/>\n&nbsp;&nbsp;return $request;<br \/>\n});<\/code><\/p>\n<p>I campi principali nell&#8217;array <code>$request<\/code> sono:<\/p>\n<ul>\n<li><code>blog<\/code> &mdash; L&#8217;URL del sito<\/li>\n<li><code>user_ip<\/code> &mdash; L&#8217;IP del commentatore<\/li>\n<li><code>user_agent<\/code> &mdash; Il browser del commentatore<\/li>\n<li><code>referrer<\/code> &mdash; La pagina di provenienza<\/li>\n<li><code>comment_type<\/code> &mdash; Il tipo di commento (comment, pingback, trackback)<\/li>\n<li><code>comment_author<\/code> &mdash; Il nome dell&#8217;autore<\/li>\n<li><code>comment_author_email<\/code> &mdash; L&#8217;email dell&#8217;autore<\/li>\n<li><code>comment_author_url<\/code> &mdash; L&#8217;URL dell&#8217;autore<\/li>\n<li><code>comment_content<\/code> &mdash; Il contenuto del commento<\/li>\n<\/ul>\n<p>Questo filtro &#232; utile per inviare informazioni aggiuntive ad Akismet che possano migliorare l&#8217;accuratezza del filtro, o per anonimizzare dati sensibili prima della trasmissione.<\/p>\n<h3>Filtro per Ignorare Specifici Commenti<\/h3>\n<p>Il filtro <code>akismet_comment_nonce<\/code> permette di controllare se Akismet deve verificare il nonce del commento:<\/p>\n<p><code>add_filter(akismet_comment_nonce, __return_true);<\/code><\/p>\n<p>Un altro filtro molto utile &#232; <code>akismet_get_api_key<\/code>, che permette di fornire la API key in modo dinamico, ad esempio leggendola da una variabile d&#8217;ambiente:<\/p>\n<p><code>add_filter(akismet_get_api_key, function() {<br \/>\n&nbsp;&nbsp;return getenv(AKISMET_API_KEY);<br \/>\n});<\/code><\/p>\n<h3>Personalizzare il Verdetto Spam<\/h3>\n<p>Il filtro <code>akismet_spam_caught<\/code> viene eseguito dopo che Akismet ha classificato un commento come spam. Puoi utilizzarlo per eseguire azioni personalizzate:<\/p>\n<p><code>add_action(akismet_spam_caught, function() {<br \/>\n&nbsp;&nbsp;\/\/ Notifica via email lamministratore<br \/>\n&nbsp;&nbsp;wp_mail(admin@tuosito.com, Spam intercettato, Akismet ha bloccato un commento spam.);<br \/>\n});<\/code><\/p>\n<p>Il filtro <code>pre_comment_approved<\/code> pu&#242; essere utilizzato per sovrascrivere il verdetto di Akismet in determinati casi:<\/p>\n<p><code>add_filter(pre_comment_approved, function($approved, $commentdata) {<br \/>\n&nbsp;&nbsp;\/\/ Approva sempre i commenti da un IP specifico (whitelist)<br \/>\n&nbsp;&nbsp;if ($commentdata[comment_author_IP] === 192.168.1.100) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;return 1;<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;return $approved;<br \/>\n}, 20, 2);<\/code><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/ak-02-stats.png\" alt=\"Statistiche avanzate e monitoraggio personalizzato di Akismet\" \/><\/p>\n<h3>Modificare il Periodo di Conservazione dello Spam<\/h3>\n<p>Per impostazione predefinita, Akismet elimina i commenti spam dopo 15 giorni. Puoi modificare questo periodo tramite il filtro <code>akismet_delete_comment_interval<\/code>:<\/p>\n<p><code>add_filter(akismet_delete_comment_interval, function() {<br \/>\n&nbsp;&nbsp;return 7; \/\/ Elimina dopo 7 giorni<br \/>\n});<\/code><\/p>\n<p>Impostare un valore pi&#249; basso pu&#242; essere utile per siti ad alto traffico dove la cartella spam si riempie rapidamente. Un valore pi&#249; alto ti d&#224; pi&#249; tempo per revisionare i potenziali falsi positivi.<\/p>\n<h3>Hook per l&#8217;Interfaccia di Amministrazione<\/h3>\n<p>Akismet espone diversi hook relativi all&#8217;interfaccia di amministrazione:<\/p>\n<p><strong>akismet_tabs:<\/strong> Permette di aggiungere tab personalizzati alla pagina di configurazione di Akismet.<\/p>\n<p><strong>akismet_comment_row_action:<\/strong> Aggiunge azioni personalizzate nella riga di ogni commento nella lista dei commenti.<\/p>\n<p><strong>akismet_comment_column_row:<\/strong> Aggiunge contenuto alla colonna Akismet nella tabella dei commenti.<\/p>\n<h3>Lavorare con le Classi PHP di Akismet<\/h3>\n<p>Akismet espone le proprie funzionalit&#224; tramite la classe <code>Akismet<\/code>. I metodi pubblici pi&#249; utili sono:<\/p>\n<p><code>Akismet::get_api_key()<\/code> &mdash; Restituisce la API key attualmente configurata.<\/p>\n<p><code>Akismet::verify_key($key, $ip = null)<\/code> &mdash; Verifica la validit&#224; di una API key.<\/p>\n<p><code>Akismet::check_key_status($key, $ip = null)<\/code> &mdash; Restituisce lo stato della chiave (valida, scaduta, sospesa).<\/p>\n<p><code>Akismet::http_post($request, $path, $ip = null)<\/code> &mdash; Effettua una chiamata HTTP ai server di Akismet. Utile per integrazioni personalizzate.<\/p>\n<h3>Verificare lo Spam Programmaticamente<\/h3>\n<p>Se hai bisogno di verificare contenuti personalizzati (non commenti WordPress standard), puoi utilizzare l&#8217;API di Akismet direttamente:<\/p>\n<p><code>$data = array(<br \/>\n&nbsp;&nbsp;blog =&gt; get_option(siteurl),<br \/>\n&nbsp;&nbsp;user_ip =&gt; $_SERVER[REMOTE_ADDR],<br \/>\n&nbsp;&nbsp;user_agent =&gt; $_SERVER[HTTP_USER_AGENT],<br \/>\n&nbsp;&nbsp;comment_type =&gt; contact-form,<br \/>\n&nbsp;&nbsp;comment_author =&gt; $nome,<br \/>\n&nbsp;&nbsp;comment_author_email =&gt; $email,<br \/>\n&nbsp;&nbsp;comment_content =&gt; $messaggio,<br \/>\n);<\/p>\n<p>$query_string = http_build_query($data);<br \/>\n$response = Akismet::http_post($query_string, comment-check);<br \/>\n$is_spam = ($response[1] === true);<\/code><\/p>\n<p>Questo approccio &#232; 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.<\/p>\n<h3>Gestire i Commenti via WP-CLI<\/h3>\n<p>Akismet supporta WP-CLI per operazioni avanzate da riga di comando:<\/p>\n<p><code>wp akismet stats<\/code> &mdash; Mostra le statistiche di Akismet<\/p>\n<p><code>wp akismet recheck<\/code> &mdash; Ri-analizza tutti i commenti in attesa tramite Akismet<\/p>\n<p>Il comando <code>recheck<\/code> &#232; particolarmente utile se hai importato commenti da un altro sito o se sospetti che il filtro non fosse attivo durante un periodo specifico.<\/p>\n<h3>Debugging e Logging<\/h3>\n<p>Per il debugging, puoi abilitare il log delle chiamate API di Akismet aggiungendo al file <code>wp-config.php<\/code>:<\/p>\n<p><code>define(WP_DEBUG, true);<br \/>\ndefine(WP_DEBUG_LOG, true);<\/code><\/p>\n<p>Con il debug attivo, Akismet registra le chiamate API e le risposte nel file <code>wp-content\/debug.log<\/code>. Questo &#232; utile per diagnosticare problemi di connessione o risultati inattesi del filtro.<\/p>\n<p>Puoi anche aggiungere un log personalizzato tramite il filtro <code>akismet_request_args<\/code>:<\/p>\n<p><code>add_filter(akismet_request_args, function($request) {<br \/>\n&nbsp;&nbsp;error_log(Akismet check:  . print_r($request, true));<br \/>\n&nbsp;&nbsp;return $request;<br \/>\n});<\/code><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/ak-04-plugins.png\" alt=\"Plugin Akismet con configurazione avanzata tramite hooks e filtri\" \/><\/p>\n<h3>Ottimizzare le Prestazioni<\/h3>\n<p>Per siti ad alto traffico, ecco alcuni suggerimenti per ottimizzare le prestazioni di Akismet:<\/p>\n<ul>\n<li><strong>Cache delle risposte API:<\/strong> Se lo stesso IP invia pi&#249; commenti in rapida successione, Akismet gestisce internamente la cache delle risposte per evitare chiamate API ridondanti<\/li>\n<li><strong>Ridurre il periodo di conservazione dello spam:<\/strong> Meno commenti spam nel database significa query pi&#249; veloci nella sezione commenti<\/li>\n<li><strong>Disabilitare i commenti dove non servono:<\/strong> Chiudi i commenti sulle pagine statiche e sugli articoli molto vecchi per ridurre le superfici di attacco<\/li>\n<li><strong>Utilizzare object caching:<\/strong> Un sistema di object caching (Redis, Memcached) accelera le operazioni del database relative ai commenti<\/li>\n<\/ul>\n<h3>Integrare Akismet in Plugin Custom<\/h3>\n<p>Se stai sviluppando un plugin WordPress che accetta input dagli utenti (form, recensioni, annunci), puoi integrare Akismet per la verifica anti-spam. L&#8217;approccio consigliato &#232;:<\/p>\n<ol>\n<li>Verificare che Akismet sia attivo con <code>is_plugin_active(akismet\/akismet.php)<\/code><\/li>\n<li>Verificare che la API key sia configurata con <code>Akismet::get_api_key()<\/code><\/li>\n<li>Utilizzare <code>Akismet::http_post()<\/code> per inviare i dati alla verifica<\/li>\n<li>Gestire il risultato (true = spam, false = legittimo)<\/li>\n<\/ol>\n<h3>Sicurezza degli Hooks<\/h3>\n<p>Quando lavori con gli hooks di Akismet, tieni presente le seguenti best practice di sicurezza:<\/p>\n<ul>\n<li>Non esporre mai la API key nel frontend o nei log accessibili pubblicamente<\/li>\n<li>Sanitizza sempre i dati prima di inviarli all&#8217;API<\/li>\n<li>Non disabilitare il filtro anti-spam per interi gruppi di utenti senza un buon motivo<\/li>\n<li>Testa le personalizzazioni in un ambiente di staging prima di applicarle in produzione<\/li>\n<\/ul>\n<h3>Conclusione<\/h3>\n<p>La configurazione avanzata di Akismet tramite filtri e hooks apre un mondo di possibilit&#224; 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 &#232; comprendere il flusso di dati del plugin e intervenire nei punti giusti con hook mirati.<\/p>\n<p>Per assistenza nello sviluppo di integrazioni personalizzate con Akismet, <a href=\"https:\/\/gtechgroup.it\/contatti\/\">contatta il team di G Tech Group<\/a>. I nostri sviluppatori WordPress sono a tua disposizione.<\/p>\n<div style=\"background:#f9f9f9;border:1px solid #e0e0e0;padding:20px;margin-top:30px;border-radius:8px;\">\n<h3>Continua a Leggere<\/h3>\n<p>Questa guida fa parte della nostra serie completa su WordPress. Scopri anche:<\/p>\n<ul>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/tag\/elementor\/\">Guide Elementor<\/a> &ndash; Impara a costruire pagine professionali con il page builder pi&#249; popolare<\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/tag\/wp-rocket\/\">Guide WP Rocket<\/a> &ndash; Ottimizza le prestazioni e la velocit&#224; del tuo sito<\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/tag\/seopress\/\">Guide SEOPress<\/a> &ndash; Migliora il posizionamento sui motori di ricerca<\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/tag\/updraftplus\/\">Guide UpdraftPlus<\/a> &ndash; Proteggi i tuoi dati con backup automatici<\/li>\n<\/ul>\n<\/div>\n<p>Per ulteriori guide, tutorial e approfondimenti sul mondo WordPress, visita il <a href=\"https:\/\/gtechgroup.it\/blog\/\">blog di G Tech Group<\/a>. Se desideri un supporto professionale per il tuo progetto web, <a href=\"https:\/\/gtechgroup.it\/contatti\/\">contattaci<\/a>: il nostro team &#232; pronto ad affiancarti in ogni fase.<\/p>\n<h3>Migliora il Tuo Sito WordPress<\/h3>\n<p>Scopri le nostre guide complete sugli altri plugin essenziali per WordPress:<\/p>\n<ul>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/come-installare-elementor-wordpress-guida-principianti\/\">Come Installare Elementor su WordPress<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/wp-rocket-installare-configurare-wordpress\/\">Come Installare e Configurare WP Rocket<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/come-installare-configurare-seopress-wordpress-guida\/\">Come Installare e Configurare SEOPress<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/installare-attivare-updraftplus-wordpress\/\">Come Installare e Configurare UpdraftPlus<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Akismet: Configurazione Avanzata, Filtri e Hooks Akismet funziona egregiamente con le impostazioni predefinite, ma per gli sviluppatori WordPress e gli amministratori avanzati offre un&#8217;ampia gamma&hellip;<\/p>\n","protected":false},"author":2,"featured_media":167196,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Akismet: Configurazione Avanzata e Filtri | Guida","_seopress_titles_desc":"Configurazione avanzata di Akismet. Filtri PHP, hooks, strictness, commenti auto-delete e personalizzazione.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"Akismet: Configurazione Avanzata, Filtri","footnotes":""},"categories":[1,61],"tags":[3576,3588,2885,3136,3135,2920],"class_list":["post-167226","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-senza-categoria","category-wordpress","tag-akismet","tag-avanzata","tag-configurazione","tag-filtri","tag-hooks","tag-php"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/167226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/comments?post=167226"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/167226\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media\/167196"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media?parent=167226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/categories?post=167226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/tags?post=167226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}