16mar
11

Como ya sabrás, normalmente se pueden usar unas cuantas etiquetas HTML en el área de comentarios, como negritas, citas, añadir enlaces y alguno más. Pero si quieres eliminar esta posibilidad para que, por ejemplo, no te pongan enlaces a sitios externos con palabras clave y cosas así puedes evitarlo muy fácilmente.

Solo hay que recurrir al fichero functions.php de tu tema activo y editarlo para añadirle este código:

// Esto es lo que pasa cuando se publica un comentario
function plc_comment_post( $incoming_comment ) {
// convierte todo lo que haya en un comentario y lo muestra literalmente
$incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);
// la única excepción son las citas sencillas, que no pueden ser #039; ya que WordPress las marca como spam
$incoming_comment['comment_content'] = str_replace( "'", ''', $incoming_comment['comment_content'] );
return( $incoming_comment );
}
// Esto es lo que pasará antes de mostrar un comentario
function plc_comment_display( $comment_to_display ) {
// Vuelve a habilitar las citas sencillas
$comment_to_display = str_replace( ''', "'", $comment_to_display );
return $comment_to_display;
}
add_filter( 'preprocess_comment', 'plc_comment_post', '', 1);
add_filter( 'comment_text', 'plc_comment_display', '', 1);
add_filter( 'comment_text_rss', 'plc_comment_display', '', 1);
add_filter( 'comment_excerpt', 'plc_comment_display', '', 1);

Guardas y ya está. Lo que hace este código es básicamente convertir los códigos a entidades HTML para que se muestren y no sean códigos activos.

Si quieres, el autor ha convertido este código en un plugin que puedes descargar al final de la entrada.

Para saber más:

  • http://raven.es RaveN

    Gracias por el tip. Muy útil, sin duda :)

    Otro tip de cara a la velocidad de carga, posicionamiento y todas esas cosas: intenta añadir el código a tu functions.php e incluirlo como una feature del tema. A mayor cantidad de plugins, más lento va el sistema.

    ¡Un saludo!

  • http://www.illi-pro.com/ Illi.Pro

    Fernando, el código que pusiste para insertarlo en el archivo functions.php está incompleto, me fijé en la fuente y falta esto ultimo:

    }

    add_filter( ‘preprocess_comment’, ‘plc_comment_post’, ”, 1);
    add_filter( ‘comment_text’, ‘plc_comment_display’, ”, 1);
    add_filter( ‘comment_text_rss’, ‘plc_comment_display’, ”, 1);
    add_filter( ‘comment_excerpt’, ‘plc_comment_display’, ”, 1);

    de lo contrario, tirará un “Parse Error”

    saludos ;)

    • http://fernandotellado.com/ Fernando Tellado

      Se me debió colar, gracias por el aviso :)

  • John

    Hola, se que la siguiente pregunta no viene a este gran post, pero me preguntaba, hay alguna forma de evitar (que no sea por IP), que un lector que comente en mi blog, no use mi mismo nombre para comentar, porque usa mi nombre para lanzar insultos y cualquier cosa que se le ocurra, hay forma de que solo yo pueda usar mi nombre y no la otra persona, gracias de antemano…

    PD: Buen blog, me ha ayudado bastante desde que lo conoci hace unos días.

    Saludos Cordiales.

    • http://raven.es RaveN

      Puedes hacer que nadie use ese nombre si no está logueado, por ejemplo.

    • http://fernandotellado.com/ Fernando Tellado

      El modo exacto no lo sé, pero si puedes limitarlo obligando a registrarse para comentar y con el plugin register plus forzar a que cada email de registro sea único, que tengas que aprobar todos los registros y cosas así.

      • john

        Bueno, gracias, he estado buscando una manera para hacerlo directamente, pero al parecer no existe, espero alguna vez se implemente en wordpress, pero bueno, probaré el plugin, gracias por las respuestas!

        Saludos Cordiales!

  • Pingback: Evite HTML nos comentários | Ajuda Wordpress em Português

  • http://xvenezolanitox.ath.cx xvenezolanitox

    gracias amigo me tenian mal con los meta refresh eso me ayudo

  • http://lamordida.net/ LaMordida

    Muy buena utilidad. gracias por la data.

  • http://www.imaginamos.com/ Paginas Webs

    Se ve bien creo que lo utilizare en varios sitios, funciona con el redireccionamiento del .htacess