WordPress permitir código html en la descripción de categorías
Por temas de seguridad, WordPress por defecto, no permite que añadamos código html en la descripción de las categorías.
El problema
Resulta que vamos a editar las categorías de entradas o Woocommerce de WordPress, y en la descripción nos sale un TextArea a rellenar. No dispone de editor visual.
Al intentar poner en el texto etiquetas HTML (h2, span …) y guardar, podemos observar que WordPress, filtra las etiquetas y las borra.
Plugins
Hay varios plugins que al instalarlos, añaden un editor visual a las categorías. No os voy a recomendar ninguno, porque no los he probado, muchos no se actualizan y porque mi política es evitar añadir el máximo número de plugins posibles.
Con código
La solución, como no, es tirr de functions.php de nuestra plantilla. Con sólo añadir el siguiente código, debería permitiros añadir manualmente código html en las categorías de WordPress:
/**
* Allow HTML in term (category, tag) descriptions
*/
foreach ( array( 'pre_term_description' ) as $filter ) {
remove_filter( $filter, 'wp_filter_kses' );
if ( ! current_user_can( 'unfiltered_html' ) ) {
add_filter( $filter, 'wp_filter_post_kses' );
}
}
foreach ( array( 'term_description' ) as $filter ) {
remove_filter( $filter, 'wp_kses_data' );
}
/* WooCommerce leer más */
add_filter( 'woocommerce_product_add_to_cart_text', function( $text ) {
return "Más información";
} );
Podéis ver que lo que hacemos es trabajar un Filter dentro del functions. Y eso es todo. Añadiendo estas líneas de código, y siempre sabiendo lo que hacéis y con backup de vuestro fichero functions.php, no deberíais tener problemas.
Espero que os haya sido de utilidad y podáis añadir código html en la descripción de categorías de vuestro WordPress.
Más información
- Tutoriales WordPress en español
- Especificaciones add_filter() en documentación de WordPress