A volte anche i commenti ammessi in WordPress possono contenere della marcatura che non vorremmo fosse inserita. Per questo motivo possiamo utilizzare due funzioni come filtri dei commenti per eliminare la marcatura HTML. Vediamo come fare.
Aggiungete il seguente codice al file functions.php
:
// Quando il commento viene postato
function sanitize_comment_post( $incoming_comment ) {
// converte le entità speciali HTML
$incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);
// non converte per ora le virgolette singole, perchè WordPress lo considererebbe spam
$incoming_comment['comment_content'] = str_replace( "'", ''', $incoming_comment['comment_content'] );
return( $incoming_comment );
}
// Prima che il commento venga visualizzato
function sanitize_comment_display( $comment_to_display ) {
// Reinserisce le virgolette singole
$comment_to_display = str_replace( ''', "'", $comment_to_display );
return $comment_to_display;
}
add_filter( 'preprocess_comment', 'sanitize_comment_post', '', 1);
add_filter( 'comment_text', 'sanitize_comment_display', '', 1);
add_filter( 'comment_text_rss', 'sanitize_comment_display', '', 1);
add_filter( 'comment_excerpt', 'sanitize_comment_display', '', 1);