Есть ли способ принудительного обновления editor-style.css
, когда я вручную изменяю таблицу стилей для редактора TinyMCE? Модификации не отображаются сразу, но они будут кэшироваться в административной части административного бэкенда.
Например, вот так:
editor-style.css?ver=3393201
Ответы:
Существует крюк для этого:
'mce_css'
. Он вызывается,_WP_Editors::editor_settings()
и вы получаете все запятые таблицы стилей, разделенные как первый и единственный параметр.Теперь это легко: используйте глобальную переменную
$editor_styles
(здесь уже сохранены таблицы стилей редактора вашей темы и родительской темы), добавьте время последней модификации файла в качестве параметра и перестройте строку.Как плагин :
источник
functions.php
файле, а не в плагине) с WP 4.6.1, он работает отлично. Кажется, нет никаких проблем с добавлением медиа или редактированием медиа встраиваемых. Это безумие , что вы не можете добавить аргументadd_editor_css
сfilemtime
тем , как вы можете сwp_enqueue_style
или даже мусора строки на конец файла ... но это полностью работает.<!--more-->
тег не отображается в TinyMCE. Любые идеи, как я могу решить это?Я не мог получить ответ toscho к работе для текущей версии WordPress (4.7.2), и что , как представляется, так как массив TinyMCE инициализации имеет cache_suffix набор для
'wp-mce-' . $tinymce_version
.Так что вместо этого вы можете просто перезаписать это с помощью фильтра tiny_mce_before_init , например так:
Конечно, это не так хорошо
filemtime()
, но, по крайней мере, это работает в 4.7.2.Примечание. Это также добавляет кеш-буфер к другим стилям редактора (например, skin.min.css, content.min.css, dashicons.min.css и wp-content.css).
источник
$mce_init['cache_suffix'] = "v=" . time();
или что-то еще более простое$mce_init['cache_suffix'] = "v=" . rand(100000000,999999999);
Вместо того, чтобы просто вызывать
add_editor_style
ваш CSS-файл, добавьте параметр строки запроса кеша:источник
filemtime()
чтобы автоматизировать обновление кеша:add_editor_style(get_stylesheet_directory_uri() . '/editor-style.css?v=' . filemtime(get_stylesheet_directory() . '/editor-style.css'));
get_template_directory_uri()
при добавлении кеша; иначе это не сработает.У меня была такая же проблема (2012, WP 3.4.2 !!). Возможные решения, пока эта ошибка существует:
1) Если вы используете firebug, [x] помогает отключить кэш браузера на панели «Сеть». У меня даже была очень странная проблема, что кешированный стиль редактора ненадолго появляется (в фильтре css) в сетевой панели Firebug на долю секунды, а затем снова исчезает. Сделал скриншоты, чтобы доказать себе.
2) помогает очистить кеш браузера. По какой-то причине после этого проблема не появилась снова.
3) И наконец, мой предпочтительный совет, если вы также должны убедиться, что ваши клиенты на промежуточном или живом сервере получат ваши дополнительные улучшения (без всякой раздражающей рекомендации по очистке кэша):
Переместите файл и продолжайте считать:
Хаки, но надежный.
источник
Я предполагаю, что проблема с принятым ответом в последних версиях заключается в том, что
$editor_styles
массив содержит только таблицы стилей, добавленные с использованием темы, поэтому в результате он удаляет из возвращаемой строки остальные таблицы стилей, добавленные ядром WordPress или плагинами.Ниже приведено решение, которое я придумал после настройки кода, вы можете использовать его в своем файле functions.php. Мое решение использует вложенный цикл и проверяет таблицы стилей, присутствующие в
$editor_styles
массиве, и добавляет последнее измененное время в качестве параметра к строке запроса и обновляет значение в массиве.источник