问题描述
当我手动更改 TinyMCE 编辑器的样式表时,是否有强制刷新 editor-style.css
的方法?修改不会立即显示,但它们将被缓存在管理后端的管理端。
例如:
editor-style.css?ver=3393201
最佳解决方案
有一个钩子:’mce_css’ 。它在_WP_Editors :: editor_settings() 中调用,并且您将所有加载的样式表逗号分隔为第一个也是唯一的参数。
现在很容易:使用全局变量 $editor_styles
(这里是您的主题和父主题的编辑器样式表已存储),将文件最后一次修改的时间添加为参数并重建字符串。
作为 plugin:
<?php # -*- coding: utf-8 -*-
/**
* Plugin Name: T5 Fresh Editor Stylesheets
* Description: Enforces fresh editor stylesheets per version parameter.
* Version: 2012.07.21
* Author: Thomas Scholz
* Plugin URI: http://wordpress.stackexchange.com/q/33318/73
* Author URI: http://toscho.de
* License: MIT
* License URI: http://www.opensource.org/licenses/mit-license.php
*/
add_filter( 'mce_css', 't5_fresh_editor_style' );
/**
* Adds a parameter of the last modified time to all editor stylesheets.
*
* @wp-hook mce_css
* @param string $css Comma separated stylesheet URIs
* @return string
*/
function t5_fresh_editor_style( $css )
{
global $editor_styles;
if ( empty ( $css ) or empty ( $editor_styles ) )
{
return $css;
}
// Modified copy of _WP_Editors::editor_settings()
$mce_css = array();
$style_uri = get_stylesheet_directory_uri();
$style_dir = get_stylesheet_directory();
if ( is_child_theme() )
{
$template_uri = get_template_directory_uri();
$template_dir = get_template_directory();
foreach ( $editor_styles as $key => $file )
{
if ( $file && file_exists( "$template_dir/$file" ) )
{
$mce_css[] = add_query_arg(
'version',
filemtime( "$template_dir/$file" ),
"$template_uri/$file"
);
}
}
}
foreach ( $editor_styles as $file )
{
if ( $file && file_exists( "$style_dir/$file" ) )
{
$mce_css[] = add_query_arg(
'version',
filemtime( "$style_dir/$file" ),
"$style_uri/$file"
);
}
}
return implode( ',', $mce_css );
}
次佳解决方案
我有同样的问题 (2012,WP 3.4.2 !!) 。可能的解决方案,而这个错误是:
1) 如果您使用 firebug,[x] 在网络面板中禁用浏览器缓存有助于。我甚至有一个非常奇怪的问题,缓存的 editor-style 短暂地出现 (在 css-filtered)Firebug 网络面板中分裂,而不再消失。拍摄截图来证明自己。
2) 完整的浏览器缓存清除有助于。无论何种原因,此问题未重新出现。
3) 最后,我最喜欢的建议,如果你还要确保,即你的客户在分期或实时服务器上得到你的增量改进 (没有任何烦人的缓存清除建议):
重新定位文件并继续计数:
// add_editor_style('editor-style-01.css'); bump for every deployment
// add_editor_style('editor-style-02.css');
add_editor_style('editor-style-03.css');
哈基,但可靠。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。