¿Hay algún método para forzar la actualización editor-style.css
cuando cambio manualmente la hoja de estilo para el editor TinyMCE? La modificación no se muestra de inmediato, pero se almacenarán en caché en el lado de administración del backend de administración.
Por ejemplo así:
editor-style.css?ver=3393201
Respuestas:
Hay un gancho para que:
'mce_css'
. Se llama_WP_Editors::editor_settings()
y obtiene todas las hojas de estilo cargadas separadas por comas como el primer y único parámetro.Ahora es fácil: use la variable global
$editor_styles
(aquí están almacenadas las hojas de estilo del editor de su tema principal y del tema principal), agregue la hora de la última modificación del archivo como parámetro y reconstruya la cadena.Como un complemento :
fuente
functions.php
archivo en lugar de un complemento) con WP 4.6.1, funciona perfectamente. No parece haber ningún problema al agregar medios o editar medios en línea. Es una locura que no puedas agregar un argumentoadd_editor_css
confilemtime
la forma en que puedes hacerlowp_enqueue_style
, o incluso una cadena de basura al final del nombre de archivo ... pero esto funciona totalmente.<!--more-->
etiqueta no se muestra en TinyMCE. ¿Alguna idea de cómo puedo resolver esto?No pude obtener la respuesta de toscho para trabajar para la versión actual de WordPress (4.7.2), y eso parece ser porque la matriz de inicio TinyMCE tiene un cache_suffix configurado en
'wp-mce-' . $tinymce_version
.Entonces, en su lugar, puede sobrescribir eso con el filtro tiny_mce_before_init , así:
Por supuesto, esto no es tan bueno como
filemtime()
, pero al menos esto funciona en 4.7.2.Nota: Esto también agrega el buster de caché a otros estilos de editor (como skin.min.css, content.min.css, dashicons.min.css y wp-content.css)
fuente
$mce_init['cache_suffix'] = "v=" . time();
o algo aún más simple como$mce_init['cache_suffix'] = "v=" . rand(100000000,999999999);
En lugar de simplemente llamar
add_editor_style
con su archivo CSS, agregue un parámetro de cadena de consulta del destructor de caché:fuente
filemtime()
para automatizar las actualizaciones de eliminación de caché:add_editor_style(get_stylesheet_directory_uri() . '/editor-style.css?v=' . filemtime(get_stylesheet_directory() . '/editor-style.css'));
get_template_directory_uri()
), al agregar un buster de caché; de lo contrario no funcionará.Tuve el mismo problema (2012, WP 3.4.2 !!). Posibles soluciones mientras este error esté presente:
1) Si usa firebug, [x] Desactivar la Caché del navegador en el panel Red ayuda. Incluso tuve un problema muy extraño, que el estilo de editor en caché aparece brevemente (en un panel de red Firebug filtrado por CSS) por una fracción de segundo, que desaparece nuevamente. Tomé capturas de pantalla para demostrarme a mí mismo.
2) Un caché de navegador completo claro ayuda. Por alguna razón posterior, el problema no volvió a aparecer.
3) Por último, mi consejo preferido, si tiene que asegurarse también, es decir, sus clientes en el servidor provisional o en vivo obtienen mejoras incrementales (sin ningún consejo molesto de eliminación de caché):
Reubique el archivo y siga contando:
Hacky, pero confiable.
fuente
Supongo que el problema con la respuesta aceptada en las últimas versiones es que la
$editor_styles
matriz solo contiene hojas de estilo agregadas usando el tema, por lo que elimina el resto de las hojas de estilo agregadas por WordPress o complementos centrales de la cadena de retorno.La siguiente es la solución que se me ocurrió después de ajustar el código, puede usarlo en su archivo functions.php. Mi solución usa un bucle anidado y comprueba las hojas de estilo presentes en la
$editor_styles
matriz, y agrega la última hora modificada como parámetro para consultar la cadena y actualiza el valor en la matriz.fuente