Commenti SPAM

Come rimuovere il campo URL dal form dei commenti in WordPress

Una semplice guida per combattere alla radice lo spamming su WordPress

Se WordPress è il tuo CMS preferito sai bene che una delle cose più fastidiose da gestire sono i commenti SPAM.

Sebbene ci siano diversi sistemi di filtraggio pronti a darci una mano in quest’opera di bonifica quotidiana (modifica del file .htaccess, Akismet, etc.) in questa guida mi occuperò di un intervento che affronta a monte il problema.

Lo SPAM su WordPress

Gli spammer cercano di sfruttare la possibilità offerta dal sistema nativo di commento di WordPress che oltre al testo del commento vero e proprio, al nome di chi lo effettua e al suo indirizzo mail, consente di inserire anche l’URL di un proprio sito.

WordPress, infatti, propone un form di commento con i seguenti campi:

  1. Commento
  2. Nome
  3. Email
  4. Sito web (URL)
Form di commento di WordPress

Il fenomeno è talmente ampio che, oltre a chi spamma manualmente, esistono diversi software per il post massivo dei commenti (in questo modo improprio viene anche utilizzato il famosissimo ScrapeBox, che è invece un software utilissimo in tante altre pratiche white del lavoro SEO).
Si tratta di vere e proprie macchine da SPAM, mediante le quali è possibile automatizzare tutti i processi di posting, comprese le variazioni dei testi da pubblicare, degli anchor text e degli URL.

Esempio di commento spam su WordPress

Una soluzione radicale: la rimozione del campo URL

A questo punto, rimuovendo il campo URL dal form di commenti di WordPress, rimuoveremo la fonte primaria di interesse degli spammer e ridurremo in maniera consistente i commenti SPAM.

Eliminando il campo per l’inserimento dell’URL dal form di invio dei commenti si elimina solo la possibilità di inserire link per il futuro. Tutti i vecchi commenti – con annessi link – rimarranno visibili. Per eliminarli occorrerà un intervento di tipo diverso che non è oggetto di questo articolo.

Metodo 1: modifica del file comment-template.php

Il primo modo per rimuovere il campo “sito web” dal form di commento è quello di intervenire direttamente sul file “comment-template.php” che si trova nella cartella “wp-include” nell’installazione del vostro sito WordPress.

(es. tua-installazione-wordpress/wp-include/comment-template.php)

Scarica il file (ti consiglio sempre di tenerne una copia di backup) ed aprilo con un editor di testo.

Cerca la seguente stringa:

'url'    => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label>' .
                    'id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',

Questo il codice che serve a generare il campo URL “Sito Web” presente nel modulo dei commenti. Puoi cancellarlo brutalmente, oppure più elegantemente commentarlo inserendo un doppio // all’inizio di ognuna delle due righe:

//'url'    => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label>' .
                    //'<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
Questo metodo però ha un limite. Essendo una modifica effettuata ad un file dell’installazione di WordPress, al primo aggiornamento di WordPress verrà sovrascritta e sarà necessario rieseguire tutta la procedura.

Metodo 2: modifica del file functions.php

Un metodo altrettanto semplice e che non soffre dei limiti derivanti dagli aggiornamenti di WordPress è quello che prevede l’inserimento di uno snippet di codice direttamente nel file functions.php del tuo tema WordPress.
Per trovare il file, vai nell’installazione di WordPress ed apri la cartella “themes” poi “wp-content” ed infine la cartella del tuo tema.

(es. tua-installazione-wordpress/wp-content/tuo-tema/function.php)

Per evitare che il file venga sovrascritto dagli eventuali aggionamenti del tema, sarà sufficiente creare un tema figlio ed inserire lo snippet di codice nel file functions.phph del tema figlio.

(es. intallazione-wordpress/wp-content/tema-figlio/function.php)

Lo snippet di codice da inserire

function remove_comment_fields($fields) {
  unset($fields['url']);
  return $fields;
}
add_filter('comment_form_default_fields','remove_comment_fields');

Il risultato finale

Form di commento di WordPress senza campo URL
Argomenti:, ,

Lascia un commento