comment ajouter une version de style.css dans wordpress

12

Comment ajouter une version de style.cssWordPress comme ci-dessous, je peux le faire dans Joomla.

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

je sais que le style.csschargera dynamiquement. s'il vous plaît, aidez-moi à faire cela.

Toretto
la source
Voici un plugin wordpress.org/plugins/wp-css-version-history qui ajoutera automatiquement un numéro de version dans la feuille de style. Il crée une nouvelle feuille de style qui est chargée en dernier. Pas besoin de vider le cache pour voir les changements. Utilise Wordpress intégré dans l'éditeur CSS et le verrou de fichier utilisateur pour la collaboration d'équipe.
Brian Holzberger

Réponses:

16

Le numéro de version est un paramètre de wp_enqueue_style().

Selon le Codex, voici tous les paramètres qui wp_enqueue_styleacceptent.

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

Ainsi, par exemple, pour charger une feuille de style avec un numéro de version, vous devez procéder comme suit:

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');
helgatheviking
la source
quand je fais cela, l'ancien style.css se charge également. Comment l'enlever?
Toretto
@VinodDalvi qu'entendez-vous par poignée. je ne sais pas à ce sujet, im nouveau pour wordpress me plaît.
Toretto
1
@Toretto Soit votre thème est codé en dur dans header.php, soit votre thème est également associé à une poignée différente (le premier paramètre). La solution dépend également de si vous modifiez directement le fichier functions.php de votre thème ou si vous avez créé un thème enfant.
helgatheviking
@Toretto, $ handle est indiqué dans ma réponse et également décrit dans le lien que j'ai fourni à la page du Codex pour wp_enqueue_stylefaire vos devoirs.
helgatheviking
1
@Toretto Si votre thème utilise wp_enqueue_style()pour charger la feuille de style en question, sa poignée est le premier paramètre. Si votre thème code en dur la feuille de style dans header.php, il n'aura pas de handle.
helgatheviking
5

Au lieu de câbler la version, il peut être préférable dans certains cas de mettre à jour dynamiquement votre feuille de style, donc chaque fois que vous la modifiez, elle modifie et actualise automatiquement le cache du navigateur immédiatement sans avoir à modifier votre functions.php encore et encore.

Vous pouvez utiliser filemtime () pour ce faire. Voici comment faire cela dans un style enfant qui fait référence au parent_style

    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), filemtime( get_stylesheet_directory() . '/style.css' )  );
Codeaholic
la source
Au fil du temps, j'en suis venu à préférer les versions à thème, mais c'est une bonne idée d'utiliser filemtime () ici, si l'on n'a pas une pratique cohérente de gestion des versions de thème.
jgangso
3

Si vous êtes développeur de thème, vous souhaiterez peut-être forcer le rechargement de vos ressources lorsque vous lancerez une nouvelle version.

La version d'un thème se fait donc en style.css

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

Au sommet de votre functions.php:

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

Plus tard, lorsque vous mettez en file d'attente CSS ou JS, utilisez THEME_VERSIONcomme quatrième argument:

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

Sortira sur la page:

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

Pratique lorsque vous avez plus d'actifs à gérer et que vous ne souhaitez pas les modifier manuellement.

Milan Švehla
la source
2

Vous pouvez y parvenir en utilisant l'une des méthodes suivantes:

1) Ajoutez la balise suivante dans le fichier header.php du thème.

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

2) Ajoutez le code suivant dans le fichier functions.php du thème.

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');

Pour plus d'informations, consultez cette page.

Vinod Dalvi
la source
quand je fais cela, l'ancien style.css se charge également. Comment l'enlever?
Toretto
À quoi sert l'ancien style.css?
Vinod Dalvi
si vous ne parvenez pas à trouver la poignée, copiez et collez l'url style.css ici. Je vais l'obtenir à partir de là ...
Vinod Dalvi
Ou pouvez-vous me dire quel est le nom de votre thème ou le nom du dossier du thème?
Vinod Dalvi
1
Bienvenue .... :)
Vinod Dalvi
1

la meilleure façon de charger css dans votre thème wordpress est le code suivant dans votre fichier 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');

C'est la bonne façon de charger les styles dans votre thème et c'est aussi la meilleure à des fins de test / test, car chaque rafraîchissement fournira la version mise à jour du style.

Si vous voulez éviter le premier chargement, vous pouvez utiliser cette version raccourcie et placer la ligne suivante dans votre fichier header.php et vous obtiendrez le même résultat:

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

À votre santé

Mile Milosheski
la source
1

Essaye ça:

Ajoutez ceci à 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();
}

Ajoutez ceci à l'en-tête ou au pied de page -> autoVer ('/ js / main.js');

Publicité publique
la source
1

Contrairement aux méthodes présentées jusqu'à présent, je pense qu'il vaut mieux utiliser le numéro de version qui apparaît en haut de votre fichier style.css:

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

Pour utiliser la version du thème dans votre CSS, ajoutez ce qui suit à votre script functions.php (ou équivalent):

<?php

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

Cela signifie qu'après avoir modifié votre fichier style.css, tout ce que vous avez à faire est de changer le numéro de version en haut du même fichier pour voir les changements dans le frontend.

Si vous examinez la section d'en-tête du code HTML du thème, vous verrez ce qui suit:

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

C'est un moyen assez simple d'obtenir le numéro de version en appelant deux fois la fonction bloginfo($show) . D'abord pour la feuille de style et ensuite pour le numéro de version.

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

C'est tout ce qu'on peut en dire. J'espère que cela aide ou est utile. Vous pouvez parcourir tous les paramètres disponibles et voir ce que vous pouvez sortir avec la bloginfo()fonction.

Ignorez mon commentaire car @Ravs a signalé mon erreur concernant le paramètre 'versions' pour la fonction bloginfo (). Il imprime en effet le numéro de version de Wordpress.

cazepeda
la source
Je pense que ce n'est pas la bonne réponse parce que <? Php bloginfo ('version')?> Vous donne la version wordpress actuelle tandis que la question concerne la version style.css et non la version wordpress.
Ravinder Kumar