L’aviez-vous remarqué ? Avec l’arrivée de WordPress 3.4, la fonction add_editor_style()
permettant d’ajouter un fichier CSS dans l’entête de l’éditeur TinyMCE a subit une petite régression : il n’est plus possible d’ajouter un paramètre à la fin de l’url du fichier. Cette fonctionnalité étant très importante pour moi, j’ai trouvé comment contourner le problème.
Importante me direz-vous ? Oui, car lorsque je modifie ce fichier CSS, le cache empêche sa mise à jour dans l’éditeur (et je n’ai pas trouvé comment le contourner… A vrai dire je n’ai pas cherché).
La fonction de remplacement
Donc voilà, heureusement un filtre est venu à ma rescousse. A mettre dans le fichier functions.php de votre thème :
0102030405060708091011121314151617181920212223242526272829
function w3p_add_editor_style( $files = '' ) {
if ( !$files ) return;
$style_uri = is_child_theme() ? get_template_directory_uri() : get_stylesheet_directory_uri();
$style_dir = is_child_theme() ? get_template_directory() : get_stylesheet_directory();
if ( !is_array($files) )
$files = explode(',', $files);
$out = array();
if ( count($files) ) {
foreach ($files as $file) {
if ( $file = trim($file) ) {
$rtl_file = str_replace('.css', '-rtl.css', $file);
if ( file_exists(reset(explode('?', $style_dir.'/'.$file))) )
$out[] = $style_uri.'/'.$file;
if ( is_rtl() && file_exists(reset(explode('?', $style_dir.'/'.$rtl_file))) )
$out[] = $style_uri.'/'.$rtl_file;
}
}
}
if ( !count($out) )
return;
$out = implode(',', $out);
add_filter( 'mce_css', create_function('$mce_css', 'return $mce_css.($mce_css ? "," : "")."'.$out.'";') );
}
Je n’ai pas testé avec un thème enfant, donc faites moi savoir si vous rencontrez un problème.
Utilisation
C’est simple, faites comme vous faisiez avec add_editor_style()
.
La fonction accepte comme argument un nom de fichier sous forme de chaîne de caractères, une liste de fichiers séparés par une virgule sous forme de chaîne de caractères, ou un tableau :
123
w3p_add_editor_style( 'editor-style.css?v=122' );
w3p_add_editor_style( 'editor-style.css?v=122,editor-style2.css?v=2' );
w3p_add_editor_style( array('editor-style.css?v=122', 'editor-style2.css?v=2') );
See ya !
Commentaires
Commentaire de Julio Potier @ BoiteAWeb.
Ha content de voir que tu as réussi ça, balèse ! :)
Merci pour le partage 8)
Commentaire de Marian Denys.
Ah merci pour ce partage fort sympathique !
Commentaire de Greg.
Mise à jour du code pour prise en compte du right-to-left.
Commentaire de chamomor.
Merci Grégory pour ce partage
j’avais bien remarqué le changement, juste grogné, et pas eu le temps de rien non plus
à force de bosser pour nos clients, on ne fait plus rien en recherche de dev, sauf la nuit ou les we :)
Commentaire de johanso.
Merci pour les conseils, les salutations de la Colombie
Commentaire de clem.
Juste merci beaucoup. Après plusieurs jours de galère voilà enfin la solution à mon problème !!!