como adicionar a versão do style.css no wordpress


12

Como adicionar a versão do style.cssWordPress, como abaixo, eu posso fazer no Joomla.

<link rel="stylesheet" href="/templates/example/css/style.css?v=1.2">

Eu sei que o style.cssirá carregar dinamicamente. por favor me ajude a como fazer isso.


Aqui está um plugin wordpress.org/plugins/wp-css-version-history que acrescentará automaticamente um número de versão na folha de estilo. Ele cria uma nova folha de estilo que é carregada por último. Não há necessidade de limpar o cache para ver as alterações. Utiliza o Wordpress, editor CSS embutido e bloqueio de arquivos do usuário para colaboração em equipe.
Brian Holzberger

Respostas:


16

O número da versão é um parâmetro de wp_enqueue_style().

De acordo com o Codex, aqui estão todos os parâmetros que wp_enqueue_styleaceitam.

wp_enqueue_style( $handle, $src, $deps, $ver, $media );

Por exemplo, para carregar uma folha de estilo com um número de versão, você faria o seguinte:

function wpa_90820() {
    wp_enqueue_style('my-styles', get_stylesheet_directory_uri() .'/my-styles.css', array(), '1.0' );       
}

add_action('wp_enqueue_scripts', 'wpa_90820');

Quando faço isso, o velho style.css também está carregando. Como removê-lo?
Toretto 14/03

@VinodDalvi, o que você quer dizer com alça. Eu não sei, sou novo no wordpress, por favor.
Toretto 14/03

1
@ Toretto Ou o seu tema está codificado no header.php ou o seu tema também está sendo colocado em um identificador diferente (o primeiro parâmetro). A solução também depende se você está editando diretamente o functions.php do seu tema ou se você criou um tema filho.
helgatheviking

@ Toretto, $ handle é mostrado na minha resposta e também descrito no link que eu forneci para a página do Codex para wp_enqueue_stylefazer sua lição de casa.
helgatheviking

1
@ Toretto Se o seu tema estiver usando wp_enqueue_style()para carregar a folha de estilo em questão, sua manipulação é o primeiro parâmetro. Se o seu tema estiver codificando a folha de estilo em header.php, ele não terá um identificador.
helgatheviking

5

Em vez de conectar a versão com hardware, você pode achar melhor, em alguns casos, fazer a versão dinâmica de sua folha de estilo; assim, sempre que você a altera, ela muda e atualiza automaticamente o cache do navegador imediatamente sem ter que editar suas funções.php repetidamente.

Você pode usar filemtime () para fazer isso. Aqui está como fazer isso em um estilo filho que faz referência ao parent_style

    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), filemtime( get_stylesheet_directory() . '/style.css' )  );

Com o tempo, passei a preferir versões de tema, mas é uma boa idéia usar filemtime () aqui, se não houver uma prática consistente de versão de tema.
Jgangso

3

Se você é um desenvolvedor de temas, pode forçar a recarga de seus ativos ao enviar uma nova versão.

Portanto, a versão de um tema é feita em style.css

/*
    Theme Name: Your Theme Name
    Version: 1.0.2
*/

Na parte superior do seu functions.php:

$theme = wp_get_theme();
define('THEME_VERSION', $theme->Version); //gets version written in your style.css

Posteriormente, quando você enfileirar CSS ou JS, use THEME_VERSIONcomo quarto argumento:

function theme_styles()
{
    wp_enqueue_style('main', get_template_directory_uri().'/css/main.css', [], THEME_VERSION, 'all');
}
add_action('wp_enqueue_scripts', 'theme_styles'); 

Será exibida na página:

.../your-theme-name/css/main.css?ver=1.0.2 

É útil quando você tem mais ativos para se preocupar e não deseja alterá-los manualmente.


2

Você pode conseguir isso usando uma das seguintes maneiras:

1) Adicione a seguinte tag no arquivo header.php do tema.

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>'?v=1.2" type="text/css" media="all" />

2) Adicione o seguinte código no arquivo functions.php do tema.

function theme_styles()  
{ 
  // Register the style like this for a theme:  
  // (First the unique name for the style (custom-style) then the src, 
  // then dependencies and ver no. and media type)
  wp_enqueue_style( 'style-css', get_template_directory_uri() . '/style.css', array(), '1.2', 'all' );
}
add_action('wp_enqueue_scripts', 'theme_styles');

Para mais informações, consulte esta página.


Quando faço isso, o velho style.css também está carregando. Como removê-lo?
Toretto 14/03

Qual é o identificador do old style.css?
Vinod Dalvi

se você não for capaz de encontrar a alça em seguida, basta copiar e colar todo o style.css url aqui .. i vai buscá-la de lá ...
Vinod Dalvi

Ou você pode me dizer qual é o nome do seu tema ou o nome da pasta do tema?
Vinod Dalvi

1
Bem-vindo .... :)
Vinod Dalvi '

1

a melhor maneira de carregar css no seu tema wordpress é o seguinte código no seu arquivo functions.php:

function theme_styles()  
{ 
  global $ver_num; // define global variable for the version number
  $ver_num = mt_rand() // on each call/load of the style the $ver_num will get different value
  wp_enqueue_style( 'style-css', get_template_directory_uri() . '/style.css', array(), $ver_num, 'all' );
}
add_action('wp_enqueue_scripts', 'theme_styles');

Este é o caminho certo para carregar os estilos no seu tema e também é o melhor para fins de teste / teste, pois cada atualização fornecerá a versão atualizada do estilo.

Se você deseja evitar o carregamento da 1ª maneira, pode usar esta versão em curto e colocar a seguinte linha no arquivo header.php e obterá o mesmo resultado:

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); echo '?ver=' . filemtime( get_stylesheet_directory() . '/style.css'); ?>" type="text/css" media="screen, projection" />

Felicidades


1

Tente o seguinte:

Adicione isso ao functions.php

function autoVer($filename){
    $url = get_template_directory_uri() . $filename;
    $file = get_template_directory() . $filename;
    if ( file_exists($file)) {
        return $url . '?v=' .md5(date("FLdHis", filectime($file)) . filesize($file));
    }
    clearstatcache();
}

Adicione isso ao cabeçalho ou rodapé -> autoVer ('/ js / main.js');


1

Ao contrário dos métodos apresentados até agora, acredito que seja melhor usar o número da versão que aparece na parte superior do seu arquivo style.css:

// style.css
/**
Theme Name: My theme
...
Version: 1.2.3
...
**/

Para usar a versão do tema em seu css, adicione o seguinte ao script functions.php (ou equivalente):

<?php

wp_enqueue_style(
    'my-theme',
    get_stylesheet_directory_uri() . '/style.css',
    [],
    wp_get_theme()->get('Version')
);

Isso significa que, depois de editar seu arquivo style.css, tudo o que você precisa fazer é alterar o número da versão na parte superior do mesmo arquivo para ver as alterações no front-end.

Se você examinar a seção principal do HTML do tema, verá o seguinte:

<link rel='stylesheet'
    id='my-theme-css'
    href='... style.css?ver=1.2.3'
    type='text/css'
    media='all'
/>

-1

Essa é uma maneira bem simples de obter o número da versão chamando a função bloginfo($show) duas vezes. Primeiro para a folha de estilo e depois para o número da versão.

<link rel="stylesheet" id="style-css" href="<?php bloginfo('stylesheet_url'); ?>?ver=<?php bloginfo('version'); ?>" type="text/css" media="all" />

É tudo o que há para isso. Espero que ajude ou seja útil. Você pode percorrer todos os parâmetros disponíveis e ver o que pode gerar com a bloginfo()função.

Ignore meu comentário, já que o @Ravs apontou meu erro em relação ao parâmetro 'versions' da função bloginfo (). De fato, imprime o número da versão do Wordpress.


Eu acho que não é a resposta correta, porque <? Php bloginfo ('version')?> Fornece a versão atual do wordpress, enquanto a pergunta é sobre anexar a versão style.css, não a versão do wordpress.
Ravinder Kumar
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.