La funzione commenti di WordPress è una cosa che trovo molto utile, ma ahimè delle volte può essere un’arma a doppio taglio, infatti oltre a fomentare non di poco i commenti spam, può essere che qualche utente preso dal momento, abbia un approccio poco ortodosso con altri utenti e scriva parole che ignorano completamente la netiquette, insomma parolacce.
Quindi ovviamente oltre ad abilitare un buon filtro antispam, come può essere per esempio il servizio Akismet, ho sviluppato un plugin del tutto gratuito che permette di creare una blacklist con le parole non permesse e da bannare in automatico prima che l’utente possa inviare il proprio commento, bello no ? 😛
Questo plugin è utile soprattutto per quei blog WordPress che hanno l’opzione di pubblicazione automatica dei commenti, ossia senza prima controllarli manualmente e poi pubblicarli.
Il plugin ha una semplice funzione che “preleva” dalle impostazioni del plugin presenti nella dashboard, le parole specificate nel form.
La funzione di pre processo dei commenti è la seguente :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//Preprocess comment to match banned words with admin option function preprocess_comment_banned_words( $commentdata ) { $restricted_words = get_option('forbidden_words'); $restricted_words = explode(",", $restricted_words); foreach($restricted_words as $restricted_word){ if (stristr( $commentdata['comment_content'], $restricted_word)) wp_die( __('<p style="color:red;font-weight:bold;">' . 'Errore: La parola "'. $restricted_word .'" non è permessa nei commenti!' . '</p>' )) ; } return $commentdata; } add_filter( 'preprocess_comment' , 'preprocess_comment_banned_words' ); |
questa $restricted_words = get_option(‘forbidden_words’); è la stringa che mi permette di ricevere le parole che sono state digitate dalle impostazioni del plugin.
Volendo se non volessimo installare il plugin, potremmo semplicemente incollare la parte di codice soprastante nel file function.php del nostra tema WordPress e sostituire la stringa in questo modo :
$restricted_words = (‘parola1,parola2,parola3’);
in questo caso viene creato un array di parole non permesse e poi viene processato.
Quindi a voi la scelta se utilizzare il plugin o la funzione, tenendo conto che la funzione potrebbe essere sovrascritta da un aggiornamento del vostro tema se non avete creato un tema child .
Il risultato dell’errore è il seguente :
Programmatore WordPress Esperto WooCommerce
Sono l’autore di questo blog con tanti trucchi e guide su WordPress e WooCommerce.