Notez que cet article a été écrit il y a plus de 6 ans, mais il n'est pas forcément obsolète.
Un problème majeur avec l’éditeur WordPress est la façon dont TinyMCE gère le code source HTML lors de la commutation entre l’éditeur Visuel et l’éditeur Texte/HTML, et lors de l’enregistrement. Des balises sont retirées, des <div> et des <span> sont effacés ou convertis en <br />, etc…
C’est le comportement par défaut de WordPress. Il n’y a pas de réglage simple d’une option dans les paramètres d’écriture ou utilisateurs.
Afin d’autoriser la saisie de code HTML dans l’éditeur Texte et d’empêcher la disparition après le traitement, on ajoute dans le fichier functions.php du thème:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
add_filter('tiny_mce_before_init', 'xbs_allow_tinymce_tags_attr'); function xbs_allow_tinymce_tags_attr( $init ) { // Autorise tous les tags et attributs $ext = '*[*]'; // Teste la présence de extended_valid_elements et ajoute $ext if ( isset( $init['extended_valid_elements'] ) ) { $init['extended_valid_elements'] .= ',' . $ext; } else { $init['extended_valid_elements'] = $ext; } return $init; } |
Cette page explique les différents réglages que l’on peut apporter.
Et hop, on peut écrire du code HTML (<div>, <p>, <svg>, …) sans avoir peur qu’il disparaisse après avoir sauvegardé.