Come disabilitare la rimozione dei tag span in TinyMCE
Sto pubblicando HTML generato da Word su WordPress tramite XMLRPC. Prima di arrivare a post.php, la formattazione viene correttamente preservata nel database. TinyMCE esegue la sua magia e perdo diversi dettagli di formattazione.
Il problema principale che sto riscontrando è che i tag <span>
con informazioni di stile che circondano altri elementi vengono rimossi. Ho verificato che questi tag vengono effettivamente rimossi da TinyMCE e non da Kses.
C'è un modo per impedire a TinyMCE di alterare l'HTML? Ho provato
add_filter('tiny_mce_before_init', 'tinymce_init');
function tinymce_init( $init ) {
$init['extended_valid_elements'] .= ', span[style|id|nam|class|lang]';
$init['verify_html'] = false;
return $init;
}
che non ha aiutato. Secondo la documentazione di TinyMCE, "verify_html"
Questa opzione abilita o disabilita la funzionalità di pulizia degli elementi. Se imposti questa opzione su false, tutta la pulizia degli elementi verrà saltata ma altre funzionalità di pulizia come la conversione degli URL verranno comunque eseguite.

Non sono riuscito a trovare l'opzione extended_valid_elements
nel pannello delle impostazioni di TinyMCE advanced, ma aggiungere il seguente codice al mio functions.php
ha risolto il problema:
function override_mce_options($initArray) {
$opts = '*[*]';
$initArray['valid_elements'] = $opts;
$initArray['extended_valid_elements'] = $opts;
return $initArray;
} add_filter('tiny_mce_before_init', 'override_mce_options');

Quasi sempre utilizzo il plugin TinyMCE Advanced - c'è una pagina di amministrazione (Impostazioni->Configurazione TinyMCE) che ti permette di aggiungere tag supportati usando l'opzione extended_valid_elements
. Basta aggiungere span
e qualsiasi altro tag che non vuoi venga rimosso e il gioco è fatto!

Grazie, TinyMCE Advanced fa esattamente la stessa cosa del mio codice qui sopra per aggiungere extended_valid_elements. Ma lo farò con il plugin. Forse c'è un bug da qualche parte nel mio codice.

Installalo e provalo - se funziona, allora il problema è nel tuo codice. Se non funziona, qualcos'altro lo sta sovrascrivendo a livello di plugin o tema.

Non sono riuscito a trovare un posto nell'ultima versione di TinyMCE Advanced per aggiungere elementi

Se utilizzi il plugin TinyMCE Advanced, esiste un plugin complementare chiamato TinyMCE Advanced Configuration, con il quale puoi modificare le impostazioni di configurazione, come l'opzione extended_valid_elements.
