web-dev-qa-db-fra.com

Les styles personnalisés TinyMCE suppriment la classe lors du changement de style

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.

2
Connor

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.

1
Nat