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

8

Estou usando um tema filho configurado corretamente. Mas eu simplesmente não consigo fazer alterações no estilo de tema Child.css a serem refletidas no site. Tentei esvaziar o cache do navegador um milhão de vezes e isso não funciona!

Eu criei arquivos de modelo filho e eles superam os pais.

Eu percebi que, na verdade, ele coloca um número de versão no final da folha de estilo 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 estilo, então por que ela está sendo colocada automaticamente quando eu não quero que ela seja configurada.

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

Aqui está o URL do meu site: - enlace

    
por user1199360 20.05.2014 / 14:54

5 respostas

4

Em vinte e quatro, tente colocar isso no tema do seu filho:

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 estilos original, mas com sua própria versão. Se você estiver usando um tema pai diferente, examine o rótulo wp_enqueue_style original para style.css e duplique esse rótulo no tema filho. Você precisará alterar 1.0.0 para outro número sempre que fizer uma alteração (por isso, é melhor para ambientes de produção em que você não faz alterações com 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 );
}
    
por whoaitsaimz 27.09.2014 / 04:46
3

Adicionar a função abaixo ao 'functions.php' de um tema infantil que usei com o X ajudou-me 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' ) );
}

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

Além disso, tenha em mente os recursos de armazenamento em cache do provedor de serviços de hospedagem para fazer esse efeito de atualização.

De acordo com 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. Não usei filemtime () para o estilo pai, pois nunca toquei nele e, portanto, filemtime () só desperdiçaria recursos.

Fonte : Comentário de Daniel até 22 de outubro de 2014 ao artigo Evitar o cache CSS : enlace

    
por bubencode 28.10.2015 / 18:35
0

Sem ver o site, não podemos ajudar a diagnosticar o problema, mas uma ocorrência comum é o tema principal. css tem prioridade sobre o filho css, você pode anular isso usando a tag !important , por exemplo.

#element {
 color:#fff !important;
}

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

Informe-nos o URL e se isso ajudar

    
por Gareth Gillman 20.05.2014 / 14:59
0

Acabei de ter o mesmo problema, e acabou sendo meu novo host tendo algum tipo de cache ligado por padrão. Fui ao meu painel de controle e esvaziei o cache, e então ele serviu corretamente o arquivo style.css correto.

O ver = 3.9.1 acabou por ser um arenque vermelho (pelo menos para mim). Depois que eu limpei o cache ele ainda diz? Ver = 3.9.1, que não é encontrado em nenhum lugar no meu arquivo css, mas está tudo funcionando bem.

    
por Kit Johnson 11.07.2014 / 08:16
0

Eu tive o mesmo problema e corrigi-lo 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 );
}
    
por GorgE_MirO 07.09.2016 / 16:18