Dans l’interface WordPress, vous aimeriez que l’éditeur TinyMCE prenne en compte les styles de votre thème, afin que ce qui s’affiche ressemble à ce que voit l’internaute ? Voici quelques codes pour vous y aider.
Pour que l’éditeur TinyMCE prenne en compte les styles de votre thème WordPress :
Dans le fichier functions.php de votre thème, ajoutez :
function my_theme_add_editor_styles() {
add_editor_style( 'style.css' );
}
add_action( 'after_setup_theme', 'my_theme_add_editor_styles' );
Pour personnaliser les styles d’affichage uniquement dans l’éditeur :
Créez dans le dossier de votre thème un fichier editor-style.css dans le quel vous renseignez les styles souhaités.
Par exemple l’arrière-plan :
/* CSS Document pour l'editeur TinyMCE */
body {
background-color:#404040;
color:#fff;
}
Puis dans le fichier functions.php de votre thème, ajoutez :
if ( !function_exists('init_editor_styles')) {
add_action( 'after_setup_theme', 'init_editor_styles' );
function init_editor_styles() {
add_editor_style( 'editor-style.css' );
}
}
Pour personnaliser le contenu du menu « Styles », du menu « Formats » et les couleurs :
Dans le fichier functions.php de votre thème, ajoutez :
function tinymce_filtre($in){
/* ##### Pour le menu Styles */
$in['block_formats'] = 'Paragraph=p;Heading 2=h2;Heading 3=h3;Heading 4=h4;';
/* ##### Pour le menu Formats, par exemple */
/* ##### Voir codex https://codex.wordpress.org/TinyMCE_Custom_Styles ##### */
$style_formats = array (
array( 'title' => 'Paragraphe', 'block' => 'p'),
array( 'title' => 'Titre', 'block' => 'h2'),
array( 'title' => 'Sous-titre', 'block' => 'h3'),
array( 'title' => 'Tarif', 'inline' => 'span', 'classes' => 'tarif'),
array( 'title' => 'Code', 'block' => 'pre', 'wrapper' => true),
array( 'title' => 'Bouton', 'selector' => 'a', 'classes' => 'bouton' ),
array( 'title' => 'Cadre', 'block' => 'div', 'wrapper' => true, 'classes' => 'cadre' )
);
$in['style_formats'] = json_encode( $style_formats );
$in['style_formats_merge'] = false;
/* ##### Pour le tableau de couleurs */
$custom_colours = '
"e8541e", "Orange1", "f39c2c", "Orange2", "c0f000", "Vert", "ffffff", "Blanc", "000000", "Noir"
';
$in['textcolor_map'] = '['.$custom_colours.']';
/* ##### A garder dans tous les cas */
return $in;
}
add_filter('tiny_mce_before_init', 'tinymce_filtre');
Pour autoriser certaines balises sans que TinyMCE les enlève automatiquement, comme les class par exemple :
Dans le fichier functions.php de votre thème, ajoutez :
function myextensionTinyMCE($init) {
// Command separated string of extended elements
$ext = 'a[accesskey|charset|class|contenteditable|contextmenu|coords|dir|download|draggable|dropzone|hidden|href|hreflang|id|lang|media|name|rel|rev|shape|spellcheck|style|tabindex|target|title|translate|type|onclick|onfocus|onblur]';
// Add to extended_valid_elements if it alreay exists
if ( isset( $init['extended_valid_elements'] ) ) {
$init['extended_valid_elements'] .= ',' . $ext;
} else {
$init['extended_valid_elements'] = $ext;
}
// Super important: return $init!
return $init;
}
add_filter('tiny_mce_before_init', 'myextensionTinyMCE' );
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');
IMPORTANT : VIDEZ VOTRE CACHE POUR VOIR LES EFFETS

Laisser un commentaire