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.

Tutoriales WordPress

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