Sostituire il campo Descrizione della Tassonomia con un Editor Visuale/WYSIWYG
Esiste un modo per aggiungere un editor TinyMCE al campo descrizione della tassonomia nelle pagine di modifica dei termini? La soluzione qui (È possibile aggiungere l'editor visuale al campo descrizione per tassonomie personalizzate?) non funziona più, penso perché la funzione wp_tiny_mce è stata deprecata.

Puoi utilizzare l'hook {$taxonomy}_edit_form_fields per aggiungere HTML alla tabella di modifica del termine. In quell'HTML puoi rimuovere il textarea della descrizione e aggiungere l'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">Descrizione</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
}

Sto per testare. A proposito, hai un errore di battitura alla riga 3, "function." :)

Mi dispiace davvero per quello. Grazie userabuser per aver corretto il mio errore di battitura. (Stavo per tornare a casa ieri a causa di un terribile mal di testa quando ho deciso di postare la risposta a 'un'altra' domanda qui.)

Ricevo "Variabile non definita: taxonomy". Come funziona? L'ho inserito in functions.php

Ho provato il codice e funziona, ma il problema è che non so come applicarlo al mio caso: https://wordpress.stackexchange.com/questions/318814/how-to-modify-default-taxonomy-field-to-a-single-text-field

Per chi sta ancora cercando una soluzione a questo problema, vale la pena menzionare che il plugin Yoast SEO aggiunge automaticamente un editor WYSIWYG per le descrizioni nella schermata di modifica dei termini tassonomici.
Se non hai intenzione di utilizzare questo plugin per la SEO, ti consiglio di non installarlo solo per questa funzionalità. Data la popolarità del plugin, ho pensato valesse la pena segnalarlo qui poiché potrebbe far risparmiare tempo a qualcuno che già prevede di installarlo.

Dove si trova questa impostazione, se posso chiedere? È una funzionalità premium o fa parte del plugin gratuito? Non vedo che funzioni con la versione gratuita...

@lcm, faceva parte del plugin gratuito e sono abbastanza sicuro che si attivasse automaticamente. Provalo su un'installazione pulita di WordPress e se funziona, allora probabilmente c'è qualcosa che interrompe la funzionalità. Potrebbe anche valere la pena controllare la console per vedere se ci sono errori JavaScript.

Sembra che questo sia disponibile solo nella schermata di modifica, ma non in quella di aggiunta. Quindi prima dovrai aggiungerlo e poi modificarlo per vedere l'editor completo.

Vale anche la pena notare che devi abilitare "Mostra impostazioni SEO per la Tassonomia" all'interno delle impostazioni Yoast per quella tassonomia specifica affinché l'editor wysiwyg si attivi. Ci sono alcune tassonomie che uso per scopi organizzativi ma non voglio che la pagina archivio venga indicizzata, tuttavia mantengo attiva quell'impostazione solo per abilitare l'editor wysiwyg nella casella di descrizione.

La risposta di Oleg Butuzov era probabilmente valida nel 2015, dato che è stata accettata e votata. Nel 2024, per chi ha avuto lo stesso problema con WordPress 6.4.2, non funziona più.
Propongo una soluzione diversa:
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: {
// opzioni personalizzabili per 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');
}
All'interno della funzione jQuery, wp.editor.initialize('description', {...})
viene chiamato per inizializzare l'editor TinyMCE sull'elemento con ID description
, che tipicamente è la textarea per la descrizione del termine. Questo è il cuore della soluzione.
Disabilitare la funzione wp_filter_kses
è un passaggio cruciale in questa soluzione, poiché normalmente filtra tutti i tag HTML tranne un insieme limitato, come testo in grassetto e corsivo, dalle descrizioni dei termini per motivi di sicurezza. Rimuovendo questo filtro, permettiamo all'editor TinyMCE di utilizzare appieno le sue capacità di testo avanzato, consentendo una gamma più ampia di opzioni di formattazione come interruzioni di riga, paragrafi multipli, colori e allineamento del testo. Senza questa modifica, molte delle funzionalità avanzate di formattazione fornite dall'editor TinyMCE verrebbero rimosse al salvataggio, limitando significativamente la sua utilità.
Tuttavia, è importante notare che disabilitare wp_filter_kses
potrebbe potenzialmente introdurre rischi per la sicurezza se utenti con la capacità di modificare le descrizioni dei termini inseriscono codice malevolo. Si consiglia di considerare i ruoli e le capacità degli utenti o implementare ulteriori misure di sanificazione per mitigare tali rischi.
