Existe um método para forçar a atualização editor-style.css
, quando altero manualmente a folha de estilo para o editor TinyMCE? A modificação não aparece imediatamente, mas eles serão armazenados em cache no lado do administrador do back-end de administração.
Por exemplo, assim:
editor-style.css?ver=3393201
Respostas:
Há um gancho para que:
'mce_css'
. É chamado_WP_Editors::editor_settings()
e você obtém todas as vírgulas carregadas separadas por vírgula como o primeiro e único parâmetro.Agora é fácil: use a variável global
$editor_styles
(aqui estão as folhas de estilo do editor do tema e do tema pai já armazenadas), adicione a hora da última modificação do arquivo como parâmetro e reconstrua a string.Como um plugin :
fonte
functions.php
arquivo, em vez de em um plug-in) com o WP 4.6.1, ele funciona perfeitamente. Parece não haver problemas com a adição de mídia ou a edição de mídia embutida. É uma loucura que você não pode adicionar um argumento paraadd_editor_css
comfilemtime
a maneira que você pode comwp_enqueue_style
, ou até mesmo uma corda lixo no final do nome do arquivo ... mas isso funciona totalmente.<!--more-->
tag não é exibida no TinyMCE. Alguma idéia de como posso resolver isso?Não consegui que a resposta do toscho funcionasse para a versão atual do WordPress (4.7.2), e isso parece ser porque o array init do TinyMCE tem um cache_suffix definido como
'wp-mce-' . $tinymce_version
.Portanto, você pode simplesmente substituí-lo pelo filtro tiny_mce_before_init , da seguinte maneira:
Obviamente, isso não é tão bom quanto
filemtime()
, mas pelo menos isso funciona no 4.7.2.Nota: Isso também adiciona o buster de cache a outros estilos de editor (como skin.min.css, content.min.css, dashicons.min.css e wp-content.css)
fonte
$mce_init['cache_suffix'] = "v=" . time();
ou algo ainda mais simples como$mce_init['cache_suffix'] = "v=" . rand(100000000,999999999);
Em vez de apenas chamar o
add_editor_style
seu arquivo CSS, adicione um parâmetro de string de consulta do buster de cache:fonte
filemtime()
a atualizações de cachebuster Automatize:add_editor_style(get_stylesheet_directory_uri() . '/editor-style.css?v=' . filemtime(get_stylesheet_directory() . '/editor-style.css'));
get_template_directory_uri()
), ao anexar um buster de cache; caso contrário, não funcionará.Eu tive o mesmo problema (2012, WP 3.4.2 !!). Possíveis soluções enquanto esse bug estiver por aí:
1) Se você usa o firebug, [x] Desativar cache do navegador no painel Rede ajuda. Eu até tive um problema muito estranho, que o estilo de editor em cache aparece brevemente (em um painel de rede filtrado por css) Firebug por uma fração de segundo, que desaparece novamente. Tomou screenshots para provar a mim mesmo.
2) Uma limpeza completa do cache do navegador ajuda. Por qualquer motivo posterior, o problema não reapareceu.
3) Por fim, meu conselho preferido, se você também tiver certeza, ou seja, seus clientes no armazenamento temporário ou no servidor ativo receberão suas melhorias incrementais (sem qualquer aviso irritante de liberação de cache):
Realoque o arquivo e continue contando:
Hacky, mas confiável.
fonte
O problema com as respostas aceitas nas versões mais recentes, presumo, é que o
$editor_styles
array contém apenas folhas de estilo adicionadas usando o tema, portanto, retira o restante das folhas de estilo adicionadas pelo núcleo wordpress ou plugins da string de retorno.A seguir está a solução que eu encontrei após ajustar o código, você pode usá-lo no seu arquivo functions.php. Minha solução usa loop aninhado e verifica as folhas de estilo presentes na
$editor_styles
matriz e acrescenta a última hora da modificação como parâmetro para consultar a string e atualiza o valor na matriz.fonte