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 Tidjy.
style working in 2016. Best solution! Thanks.