J'ai ajouté des styles personnalisés à l'éditeur TinyMCE à l'aide du crochet de filtre tiny_mce_before_init
. Ils travaillent en ajoutant des classes à l'élément de niveau bloc. Voir le code ci-dessous:
function byron_mce_before_init($settings) {
$style_formats = [
[
'title' => 'Lead',
'block' => 'p',
'classes' => 'lead',
],
[
'title' => 'Tagline',
'block' => 'h5',
'classes' => 'tagline',
],
];
$settings['style_formats'] = json_encode($style_formats);
return $settings;
}
add_filter('tiny_mce_before_init', 'byron_mce_before_init');
Le problème que je rencontre est que lors du basculement entre les styles définis ci-dessus, la classe n'est pas supprimée; au lieu de cela, la nouvelle classe est ajoutée à l'ancienne classe au lieu de la remplacer. Je n'arrive pas à comprendre comment supprimer les anciennes classes lors du basculement entre les styles. Toute aide serait grandement appréciée.
On dirait que la question a été posée à community.tinymce.com et la réponse est ici: https://community.tinymce.com/communityQuestion?id=90661000000IiyjAAC
Vous ne pouvez pas faire en sorte que le style que vous avez défini supprime les classes précédentes, mais vous pouvez "appliquer" à nouveau le style en le sélectionnant dans la liste déroulante et il sera supprimé - la classe sera donc supprimée de la balise. . Vous pouvez ensuite choisir un style différent dans la liste déroulante et la classe correspondant à ce style sera ajoutée à la balise.