Não é possível obter o Tema filho para carregar a versão mais recente do style.css

9

Estou usando um tema filho configurado corretamente. Mas simplesmente não consigo que as alterações no tema Child style.css sejam refletidas no site. Tentei esvaziar o cache do navegador um milhão de vezes e não funciona!

Criei arquivos de modelo filho e eles substituem os arquivos principais.

Percebi, em vista, que ele coloca um número de versão no final da folha de estilos assim: - style.css? Ver = 3.9.1 mesmo que eu não tenha criado nenhuma versão!

Em outro site que criei, não há controle de versão da folha de estilos; então, por que ela está sendo inserida automaticamente quando não quero que ela seja definida?

Como forçá-lo a usar a versão mais atualizada do arquivo Child style.css e não a versão?

Aqui está o URL do meu site: - http://www.peterswebservices.co.uk/

user1199360
fonte
11
O cache do navegador é a possibilidade mais óbvia, mas o cache do servidor pode causar o mesmo efeito, assim como os "aceleradores" da Web que alguns ISPs e sites independentes oferecem.
S_ha_dum 20/05
A parte da versão que você está vendo é apenas a versão atual do wordpress que é automaticamente adicionada pelo wordpress. Não precisa se preocupar com isso.
Pieter Goosen

Respostas:

4

Em vinte e quatorze, tente colocar isso no seu tema infantil:

function add_require_scripts_files() {
 wp_enqueue_style('twentyfourteen-style', get_stylesheet_directory_uri().'/style.css', array(), '1.0.0', "all");        
}
add_action( 'wp_enqueue_scripts', 'add_require_scripts_files' );

Isso substituirá a folha de estilo original, mas por sua própria versão. Se você estiver usando um tema pai diferente, consulte o rótulo wp_enqueue_style original para style.css e duplique esse rótulo no tema filho. Você precisará alterar a 1.0.0 para outro número cada vez que fizer uma alteração (por isso é melhor para ambientes de produção onde você não faz alterações com tanta frequência).

Para remover a versão dos scripts e estilos, tente o seguinte:

// remove WP version tag from scripts and styles, best for dev environments
// by Adam Harley https://wordpress.org/support/topic/enqueueregister-script-remove-version
add_filter( 'script_loader_src', 'remove_src_version' );
add_filter( 'style_loader_src', 'remove_src_version' );
function remove_src_version ( $src ) {
  global $wp_version;
  $version_str = '?ver='.$wp_version;
  $version_str_offset = strlen( $src ) - strlen( $version_str );
  if( substr( $src, $version_str_offset ) == $version_str )
    return substr( $src, 0, $version_str_offset );
}
whoaitsaimz
fonte
4

Adicionar a função abaixo ao 'functions.php' de um tema Child que usei com o X me ajudou muito na situação semelhante.

add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_styles', PHP_INT_MAX);
function enqueue_child_theme_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), NULL, filemtime( get_stylesheet_directory() . '/style.css' ) );
}

não se esqueça de remover isso antes de lançar seu site ao vivo.

Lembre-se também dos recursos de armazenamento em cache do seu provedor de serviços de hospedagem para fazer essa atualização.

Segundo o autor :

... é a melhor maneira de incluir uma folha de estilo childtheme no WordPress combinada com filemtime () para forçar os navegadores a carregar novas versões dos arquivos css. Eu não usei filemtime () no estilo pai, pois nunca o toquei e, portanto, o filemtime () gastaria apenas recursos.

Fonte : comentário de Daniel em 22 de outubro de 2014 ao artigo Evitar o cache de CSS : https://css-tricks.com/snippets/wordpress/prevent-css-caching/#comment-1586141

bubencode
fonte
0

Sem ver o site, não podemos ajudar a diagnosticar o problema, mas uma ocorrência comum é o tema principal em que o CSS está com prioridade sobre o CSS filho, você pode anular isso usando a !importanttag

#element {
 color:#fff !important;
}

A tag importante marca esse css como prioridade sobre qualquer outro arquivo css com a mesma linha de css

Deixe-nos saber o URL e se isso ajuda

Gareth Gillman
fonte
Eu não acho que importante é o problema, mas aqui está o meu URL: - peterswebservices.co.uk Também quando uso o inspetor no Google Chrome e detalho o arquivo css mostrando uma versão anterior sem as alterações mais recentes.
User1199360
0

Acabei de ter o mesmo problema e, por padrão, meu novo host estava com algum tipo de cache ativado. Fui ao meu painel de controle e limpei o cache, e ele serviu corretamente o arquivo style.css correto.

O? Ver = 3.9.1 acabou sendo um arenque vermelho (pelo menos para mim). Depois de limpar o cache, ele ainda diz? Ver = 3.9.1, que não é encontrado em nenhum lugar do meu arquivo css, mas está funcionando bem.

Kit Johnson
fonte
11
O ?ver=3.9.1é adicionado automaticamente pelo wordpress. Esta é a versão atual do wordpress e não tem nada a ver com o tema :-)
Pieter Goosen
0

Eu tive o mesmo problema e o corrigi de outra maneira que o padrão.

Primeiro localizei o arquivo que preciso alterar:

wp-includes\theme.php

Existe uma função chamada get_stylesheet_uri

Minha função é assim:

function get_stylesheet_uri() {
    $time = time();
    $stylesheet_dir_uri = get_stylesheet_directory_uri();
    $stylesheet_uri = $stylesheet_dir_uri . '/style.css?v='.$time;
    /**
     * Filter the URI of the current theme stylesheet.
     *
     * @since 1.5.0
     *
     * @param string $stylesheet_uri     Stylesheet URI for the current theme/child theme.
     * @param string $stylesheet_dir_uri Stylesheet directory URI for the current theme/child theme.
     */
    return apply_filters( 'stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri );
}
GorgE_MirO
fonte