Impedir o parâmetro do URL da versão (? Ver = XXX) em estilos e scripts enfileirados

12

Caso de Uso

Venho experimentando os recursos do Espaço de Trabalho para Ferramentas de Desenvolvimento do Chrome. Inclui a capacidade de editar um arquivo diretamente no Dev Tools e fazer com que a folha de estilo salva seja atualizada automaticamente (ou até compile e depois atualize!).

No entanto, conforme documentado na pergunta StackOverflow "CSS gerado automaticamente por recarga do Chrome" não recarrega a página quando o SASS recompila o CSS " , os parâmetros de URL no URL da folha de estilo impedem o Chrome de perceber a alteração.

Resultado desejado

Isso significa que somente durante o desenvolvimento , eu queria remover a saída da ?ver=X.X.Xfolha de estilo normal <link>por wp_enqueue_style(). Em outras palavras, eu queria o padrão href:

http://localhost/mysite/wp-includes/style.css?ver=4.1.1

em vez disso, seja este:

http://localhost/mysite/wp-includes/style.css
mrwweb
fonte

Respostas:

12

wp_enqueue_[style/script]()Comportamento padrão

O valor padrão para o $versionargumento de wp_enqueue_style()é false. No entanto, esse padrão significa apenas que as folhas de estilo recebem a versão do WordPress .

Solução

Graças a "Remover versão do CSS e JS enfileirados do WordPress" , aprendi o fato não documentado de que a passagem nullcomo versão removerá a versão completamente!

Exemplo

wp_enqueue_style( 'wpse-styles', get_template_directory_uri() . '/style.css', array(), null );

Aviso de advertência

Vale ressaltar, como observado na pergunta, que isso provavelmente só deve ser feito durante o desenvolvimento (como no caso de uso específico). O parâmetro version ajuda no cache (e não no cache) dos visitantes do site e, portanto, provavelmente deve ser deixado em 99% dos casos.

mrwweb
fonte
8

Obrigado por seu post, mrwweb.

Encontrei outra solução para isso, criando um plugin muito simples que você pode desativar quando o site não estiver mais em desenvolvimento.

<?php

/*
Plugin name: Strip WP Version in Stylesheets/Scripts
*/

function switch_stylesheet_src( $src, $handle ) {

        $src = remove_query_arg( 'ver', $src );
        return $src;
}
add_filter( 'style_loader_src', 'switch_stylesheet_src', 10, 2 );

?>

Passei alguns minutos tentando encontrar esta solução. Pensei que eu poderia compartilhar outra opção aqui, em vez de criar uma nova pergunta / resposta.

Ricardo Andres
fonte
não funciona ...
reggie
Essa é a resposta correta. Use esse filtro ao desenvolvê-lo e remova-o quando entrar em operação.
dtbaker
Muito melhor do que estilos de desenfileiramento e fila. Também aplicável a scripts com filtroscript_loader_src
Dharma