Como alterar a versão do .css no WordPress?

13

Como o título sugere, não tenho muita certeza de como alterar a versão de um arquivo .css no meu tema. No momento, o versionamento .css é assim:

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=4.6.1' type='text/css' media='all' />

Existe um script que eu precise executar - onde devo procurar criar a versão 4.6.2, conforme descrito acima?

Henry
fonte
Como você está imprimindo esse script?
21416 Nathan Powell

Respostas:

18

O quarto argumento, $verpara wp_enqueue_style()permite que você defina a versão:

wp_enqueue_style( string $handle,
                  string $src = false,
                  array $deps = array(),
                  string|bool|null $ver = false,
                  string $media = 'all' );

De acordo com os documentos:

$ ver (string | bool | null) (Opcional) String que especifica o número da versão da folha de estilo, se houver, que é adicionado ao URL como uma string de consulta para fins de bloqueio de cache. Se a versão estiver definida como falsa, um número de versão será adicionado automaticamente igual à versão atual instalada do WordPress. Se definido como nulo, nenhuma versão será adicionada. Valor padrão: false

Dave Romsey
fonte
Obrigado por isso - acho que o que estou perguntando é 'como faço isso' - ou seja, 'como executo esse script para gerar uma nova versão'? Espero que isso faça sentido ...
Henry
Você atualizaria sua pergunta com o código onde wp_enqueue_style()é chamado? O WordPress lida com o controle de versão automaticamente com base na explicação de $verpostado na minha resposta, então estou assumindo que $ ver está definido como falso. Se você quiser alterá-lo, altere o argumento $ ver para uma nova string (eu não usaria 4.6.2, pois essa convenção já é usada pelo WordPress), mas tecnicamente funcionaria.
58560 Dave
11
Você pode facilmente substituir qualquer coisa lá. Por exemplo, $ver = time();criaria uma nova versão toda vez que você chegasse à página, e a versão seria a hora.
19416 Nathan Powell
8

Principalmente, a wp_enqueue_style()função de uso do tema dentro do arquivo functions.php para adicionar uma folha de estilo no cabeçalho. Aqui está como descobrir se o seu tema faz o mesmo.

Abra seu wp-content/themes/YOUR_THEME_NAME/functions.phparquivo e descubra a linha que está adicionando a folha de estilos, como:

wp_enqueue_style('main_style',  get_stylesheet_directory_uri() . '/style.css');

Ou como:

wp_enqueue_style( 'twentysixteen-style', get_stylesheet_uri() );

Você pode procurar o ID (exceto a -cssparte) ... se o ID for: main_style-cssprocure apenas main-styleno seu arquivo functions.php e provavelmente encontre a linha de código que estava procurando.

Agora que você encontrou o código e sabe que seu tema adiciona essa folha de estilo usando o wp_enqueue_style()arquivo functions.php. Você precisa atualizar este código para a versão.

$style_ver = filemtime( get_stylesheet_directory() . '/style.css' );
wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', $style_ver );

Como você pode ver, esse código obtém o horário da última modificação do arquivo style.css usando a filemtime()função PHP e também converte o tempo em registro de data e hora usando a time()função PHP apenas para tornar as coisas mais limpas.

Se você não deseja que a versão seja alterada dinamicamente toda vez, basta fazer isso:

wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', '1.5' );

É isso mesmo. Paz!

Waqas Jawed
fonte
Atenção: você deve usar o get_stylesheet_directory()dentro filemtime()dele, pois ele retornará um caminho do sistema.
Half Crazed
3

Como não obtive muitas respostas, pensei em escrever o que funcionava para mim. Eu sei que o códice diz:

$ ver (string | bool | null) (Opcional) String que especifica o número da versão da folha de estilo, se houver, que é adicionado ao URL como uma string de consulta para fins de bloqueio de cache. Se a versão estiver definida como falsa, um número de versão será adicionado automaticamente igual à versão atual instalada do WordPress. Se definido como nulo, nenhuma versão será adicionada. Valor padrão: false

Mas é muito enigmático sobre como ele realmente funciona. Não foi possível obter um número de versão wp_enqueue_stylepara acionar um parâmetro de consulta como ?ver=1.2.3na minha folha de estilo. No entanto, defini-lo como true permite a versão declarada da folha de estilo para cache busta folha de estilo. (Leia)

Dentro do seu style.css, você deve nomear seu tema. Isso é exigido pelo WP. No entanto, outras opções como a versionque a versão booleana do wp_enqueue_style também fornece referência.

/******************************************************************
Site Name: MySite.com
Author: @BenRacicot
Version: 4.0 // <- wp_enqueue_style's version number
Stylesheet: Main Stylesheet
******************************************************************/

Agora, quando eu mudo isso para Version: 4.1eu recebostyle.css?cache-bust=0.24135995238933283

Ben Racicot
fonte
2

Você pode simplesmente usar time()em um estilo de enfileiramento ou script como este.

Sem usar a wp_enqueue_style()função wordpress

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=<?php echo time(); ?>' type='text/css' media='all' />

Usando a wp_enqueue_style()função

wp_enqueue_style('style_sheet_name', get_stylesheet_directory_uri() . '/custom_style.css', '', time());

OU

wp_enqueue_style('style_sheet_name', get_stylesheet_uri() . '/custom_style.css', '', time());
Mr. HK
fonte
11
Eu não recomendaria isso, tenho certeza que ele derrotará a versão em cache todos juntos.
Fabian von Ellerts 28/03/19