Existe-t-il une méthode pour forcer l'actualisation de editor-style.css
, lorsque je modifie manuellement la feuille de style pour l'éditeur TinyMCE? Les modifications ne s'affichent pas immédiatement, mais elles seront mises en cache dans le côté administrateur du backend d'administration.
Par exemple, comme ceci:
editor-style.css?ver=3393201
Réponses:
Il y a un crochet pour que:
'mce_css'
. Il est appelé_WP_Editors::editor_settings()
et vous obtenez toutes les feuilles de style chargées séparées par une virgule comme premier et seul paramètre.Maintenant, c'est facile: utilisez la variable globale
$editor_styles
(voici les feuilles de style de l'éditeur de votre thème et de votre thème parent déjà stockées), ajoutez l'heure de la dernière modification du fichier comme paramètre et reconstruisez la chaîne.En tant que plugin :
la source
functions.php
quel (mais dans mon fichier plutôt qu'un plugin) avec WP 4.6.1, cela fonctionne parfaitement. Il ne semble pas y avoir de problème avec l'ajout de médias ou l'édition de médias en ligne. C'est fou que vous ne puissiez pas ajouter d'argumentadd_editor_css
avecfilemtime
la façon dont vous le pouvezwp_enqueue_style
, ou même une chaîne de caractères à la fin du nom de fichier ... mais cela fonctionne totalement.<!--more-->
balise n'est pas affichée dans TinyMCE. Des idées comment puis-je résoudre ce problème?Je n'ai pas pu obtenir la réponse de toscho pour travailler avec la version actuelle de WordPress (4.7.2), et cela semble être dû au fait que le tableau d'initialisation TinyMCE a un cache_suffix défini sur
'wp-mce-' . $tinymce_version
.Donc, à la place, vous pouvez simplement écraser cela avec le filtre tiny_mce_before_init , comme ceci:
Bien sûr, ce n'est pas aussi bon
filemtime()
, mais au moins cela fonctionne dans 4.7.2.Remarque: Cela ajoute également le cache cache à d'autres styles d'éditeur (comme skin.min.css, content.min.css, dashicons.min.css et wp-content.css)
la source
$mce_init['cache_suffix'] = "v=" . time();
ou quelque chose de plus simple comme$mce_init['cache_suffix'] = "v=" . rand(100000000,999999999);
Au lieu d'appeler simplement
add_editor_style
avec votre fichier CSS, ajoutez un paramètre de chaîne de requête de cache buster:la source
filemtime()
pour automatiser les mises à jour de contournement du cache:add_editor_style(get_stylesheet_directory_uri() . '/editor-style.css?v=' . filemtime(get_stylesheet_directory() . '/editor-style.css'));
get_template_directory_uri()
), lors de l'ajout d'un cache cache; sinon cela ne fonctionnera pas.J'ai eu le même problème (2012, WP 3.4.2 !!). Solutions possibles pendant que ce bug existe:
1) Si vous utilisez Firebug, [x] Désactiver le cache du navigateur dans le panneau Net vous aide. J'ai même eu un problème très étrange, à savoir que le style de l'éditeur mis en cache apparaît brièvement (dans un panneau net Firebug filtré par CSS) pendant une fraction de seconde, puis disparaît à nouveau. J'ai pris des captures d'écran pour me prouver.
2) Un cache de navigateur complet efface les aides. Pour quelque raison que ce soit par la suite, le problème n'est pas réapparu.
3) Enfin, mon conseil préféré, si vous devez également vous assurer, c'est-à-dire que vos clients sur le serveur intermédiaire ou en direct obtiennent vos améliorations incrémentielles (sans aucun conseil gênant de suppression du cache):
Déplacer le fichier et continuer à compter:
Hacky, mais fiable.
la source
Le problème avec la réponse acceptée dans les dernières versions, je suppose, est que le
$editor_styles
tableau ne contient que des feuilles de style ajoutées à l'aide du thème, de sorte qu'il supprime le reste des feuilles de style ajoutées par core wordpress ou les plugins de la chaîne de retour.Voici la solution que j'ai trouvée après avoir modifié le code, vous pouvez l'utiliser dans votre fichier functions.php. Ma solution utilise une boucle imbriquée et vérifie les feuilles de style présentes dans le
$editor_styles
tableau, et ajoute la dernière heure modifiée comme paramètre pour interroger la chaîne et met à jour la valeur dans le tableau.la source