web-dev-qa-db-fra.com

Comment désactiver TinyMCE pour supprimer les balises span

Je poste 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 effectue sa magie et je perds pas mal de détails de formatage.
Le problème principal que je vois est que la balise <span> avec les informations de style entourant les autres éléments est supprimée. J'ai vérifié que ces tags sont bien supprimés 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;
}

qui n'a pas aidé. Selon TinyMCE documentation , "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.

10
ltfishie

Je ne pouvais pas trouver l'option extended_valid_elements dans le panneau des paramètres de TinyMCE advanced, mais l'ajout de ce qui suit à mon functions.php l'a résolu:

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

6
Sim

J'utilise presque toujours le TinyMCE Advanced plugin - une page d'administrateur (Paramètres-> TinyMCE Config) vous permet d'ajouter des tags pris en charge à l'aide de l'option extended_valid_elements. Ajoutez simplement span et tous les autres tags que vous ne voulez pas supprimer et profitez-en!

4
SickHippie