Sustituir el campo de descripción de taxonomía por un editor visual/WYSIWYG

4 jun 2015, 18:28:34
Vistas: 13.8K
Votos: 6

¿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.

0
Todas las respuestas a la pregunta 4
6
20

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
}
8 jun 2015 19:13:07
Comentarios

Oleg, lo probaré primero por la mañana.

Josh M Josh M
8 jun 2015 21:57:33

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

Josh M Josh M
8 jun 2015 23:03:33

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í).

Oleg Butuzov Oleg Butuzov
9 jun 2015 10:17:17

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

Jordan Carter Jordan Carter
14 ago 2017 21:32:12

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

leonardeveloper leonardeveloper
10 nov 2018 07:20:17

@JordanCarter: Reemplaza {$taxonomy} con el nombre real de tu taxonomía. Por ejemplo, 'color' o 'category' (sin comillas).

MastaBaba MastaBaba
30 ene 2019 15:21:04
Mostrar los 1 comentarios restantes
4

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.

6 may 2020 22:32:47
Comentarios

¿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 lcm
10 feb 2021 11:35:45

@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.

jg314 jg314
10 feb 2021 15:04:45

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.

ggedde ggedde
27 may 2021 00:48:26

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.

pinksharpii pinksharpii
23 jun 2022 18:48:58
0

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.

29 ene 2024 19:37:17
0

Sí, instalar el plugin Yoast SEO resolverá el problema. Funciona perfectamente con todos los constructores de páginas populares también.

13 mar 2023 14:21:14