Sustituir el campo de descripción de taxonomía por un editor visual/WYSIWYG
¿Existe alguna forma de añadir un editor TinyMCE al campo de descripción de taxonomía en las páginas de edición de términos? La solución que aparece aquí (¿Se puede añadir el editor visual al campo de descripción para taxonomías personalizadas?) ya no funciona, creo que porque la función wp_tiny_mce ha quedado obsoleta.
Puedes usar el hook de acción {$taxonomy}_edit_form_fields para agregar HTML a la tabla de edición de términos. En ese HTML puedes eliminar el textarea de descripción y añadir el editor tinymce
add_action("{$taxonomy}_edit_form_fields", 'add_form_fields_example', 10, 2);
function add_form_fields_example($term, $taxonomy){
?>
<tr valign="top">
<th scope="row">Descripción</th>
<td>
<?php wp_editor(html_entity_decode($term->description), 'description', array('media_buttons' => false)); ?>
<script>
jQuery(window).ready(function(){
jQuery('label[for=description]').parent().parent().remove();
});
</script>
</td>
</tr>
<?php
}

A punto de probar. Por cierto, tienes un error tipográfico en la línea 3, "function." :)

Lo siento mucho por eso. Gracias userabuser por corregir mi error tipográfico. (Estaba a punto de irme a casa ayer debido a un terrible dolor de cabeza cuando decidí publicar una respuesta en 'una pregunta más' aquí).

Recibo "Undefined variable: taxonomy". ¿Cómo funciona esto? Lo puse en functions.php

He probado el código y funciona, pero el problema es que no sé cómo aplicarlo a mi caso: https://wordpress.stackexchange.com/questions/318814/how-to-modify-default-taxonomy-field-to-a-single-text-field

Para aquellos que todavía buscan una solución a este problema, vale la pena mencionar que el plugin Yoast SEO añade un editor WYSIWYG para las descripciones automáticamente en la pantalla de edición de términos de taxonomía.
Si no planeas usar ese plugin para SEO, por favor no lo instales solo por esta funcionalidad. Dada la popularidad del plugin, pensé que valía la pena mencionarlo aquí ya que podría ahorrar tiempo a alguien que ya planea instalarlo.

¿Dónde está esta configuración si no te importa que pregunte? ¿Es una función premium o parte del plugin gratuito? No veo que esto funcione con la versión gratuita...

@lcm, era parte del plugin gratuito y estoy bastante seguro de que se activaba automáticamente. Pruébalo en una instalación nueva de WordPress y si funciona, entonces es probable que algo esté rompiendo la funcionalidad. También podría valer la pena revisar la consola para ver si estás recibiendo algún error de JavaScript.

Parece que esto solo está en la pantalla de Edición, pero no en la pantalla de Agregar. Entonces primero necesitarás agregarlo y luego editarlo para ver el editor completo.

También vale la pena mencionar que debes habilitar "Mostrar configuraciones de SEO para la Taxonomía" dentro de los ajustes de Yoast para esa taxonomía específica, para que el editor wysiwyg se active. Hay algunas taxonomías que uso con fines de organización pero no quiero que la página de archivo sea indexada, aunque mantengo esa configuración activa solo para habilitar el editor wysiwyg en el cuadro de descripción.

La respuesta de Oleg Butuzov probablemente era válida en 2015, ya que fue aceptada y votada. En 2024, para aquellos que tuvieron el mismo problema con WordPress 6.4.2, ya no funciona.
Propongo una solución diferente:
add_action("{$taxonomy}_edit_form_fields", 'tinymce_on_description', 10, 2);
function tinymce_on_description($term, $taxonomy){
?>
<script>
jQuery(document).ready(function($) {
wp.editor.initialize('description', {
tinymce: {
// opciones personalizables para TinyMCE
toolbar1: 'formatselect | bold italic | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link',
plugins: 'link,lists,textcolor,colorpicker',
menubar: false,
statusbar: false,
},
quicktags: true,
mediaButtons: false,
});
});
</script>
<?php
}
add_action('init','disable_kses');
function disable_kses() {
remove_filter('pre_term_description', 'wp_filter_kses');
}
Dentro de la función jQuery, se llama a wp.editor.initialize('description', {...})
para inicializar el editor TinyMCE en el elemento con el ID description
, que normalmente es el textarea para la descripción del término. Este es el núcleo de la solución.
Deshabilitar la función wp_filter_kses
es un paso crucial en esta solución, ya que normalmente filtra todas las etiquetas HTML excepto un conjunto limitado, como texto en negrita y cursiva, de las descripciones de términos por razones de seguridad. Al eliminar este filtro, permitimos que el editor TinyMCE utilice completamente sus capacidades de texto enriquecido, permitiendo un mayor rango de opciones de formato como saltos de línea, múltiples párrafos, colores y alineación de texto. Sin este ajuste, muchas de las características avanzadas de formato proporcionadas por el editor TinyMCE serían eliminadas al guardar, limitando significativamente su utilidad.
Sin embargo, es importante tener en cuenta que deshabilitar wp_filter_kses
podría potencialmente introducir riesgos de seguridad si usuarios con la capacidad de editar descripciones de términos insertan código malicioso. Se recomienda considerar los roles y capacidades de los usuarios o implementar medidas de saneamiento adicionales para mitigar dichos riesgos.
