Sostituire il campo Descrizione della Tassonomia con un Editor Visuale/WYSIWYG

4 giu 2015, 18:28:34
Visualizzazioni: 13.8K
Voti: 6

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.

0
Tutte le risposte alla domanda 4
6
20

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
} 
8 giu 2015 19:13:07
Commenti

Oleg, proverò questa cosa per prima cosa domattina.

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

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

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

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

Oleg Butuzov Oleg Butuzov
9 giu 2015 10:17:17

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

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

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

leonardeveloper leonardeveloper
10 nov 2018 07:20:17

@JordanCarter: Sostituisci {$taxonomy} con il nome effettivo della tua tassonomia. Quindi, ad esempio, 'color' o 'category' (senza virgolette).

MastaBaba MastaBaba
30 gen 2019 15:21:04
Mostra i restanti 1 commenti
4

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.

6 mag 2020 22:32:47
Commenti

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

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

jg314 jg314
10 feb 2021 15:04:45

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.

ggedde ggedde
27 mag 2021 00:48:26

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.

pinksharpii pinksharpii
23 giu 2022 18:48:58
0

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.

29 gen 2024 19:37:17
0

Sì, installare il plugin Yoast SEO risolverà il problema. Funziona perfettamente anche con tutti i più famosi page builder.

13 mar 2023 14:21:14