Comment désactiver TinyMCE pour supprimer les balises span

10

Je publie du HTML généré par Word sur WordPress via XMLRPC. Avant de passer à post.php, le format est correctement conservé dans la base de données. TinyMCE opère sa magie et je perds pas mal de détails de formatage.
Le principal problème que je vois est que les <span>balises contenant des informations de style entourant d'autres éléments sont supprimées. J'ai vérifié que ces balises sont bien supprimées par TinyMCE et non par Kses. Existe-t-il un moyen d'empêcher TinyMCE de modifier le code HTML? j'ai essayé

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;
}

ce qui n'a pas aidé. Selon la documentation de TinyMCE , "verify_html"

Cette option active ou désactive la fonctionnalité de nettoyage d'élément. Si vous définissez cette option sur false, tout le nettoyage des éléments sera ignoré mais d'autres fonctionnalités de nettoyage telles que la conversion d'URL seront toujours exécutées.

ltfishie
la source

Réponses:

6

Je n'ai pas pu trouver l' extended_valid_elementsoption dans le panneau des paramètres de TinyMCE avancé, mais en ajoutant ce qui suit à ma functions.phprésolution:

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');

La source

Sim
la source
4

J'utilise presque toujours le plugin TinyMCE Advanced - il y a une page d'administration (Paramètres-> TinyMCE Config) qui vous permet d'ajouter des balises prises en charge en utilisant l' extended_valid_elementsoption. Ajoutez simplement spanet quelles que soient les autres balises que vous ne souhaitez pas supprimer et profitez-en!

SickHippie
la source
Merci, TinyMCE Advanced fait exactement la même chose que mon code ci-dessus pour ajouter Extended_valid_elements. Mais je le ferai avec le plugin. Peut-être que j'ai un bug quelque part dans mon code.
ltfishie
Installez-le et essayez-le - si cela fonctionne, alors le problème est votre code. Si ce n'est pas le cas, quelque chose d'autre le remplace au niveau du plugin ou du thème.
SickHippie
2
Je n'ai pas trouvé de place dans la dernière version de TinyMCE Advanced pour ajouter des éléments
Nicola Peluchetti
Ce n'est pas surprenant, car ce message a 3 ans et demi.
SickHippie