Ma question peut prendre plusieurs aspects, mais j'estime que c'est simple: comment vous assurer que les modifications apportées à un thème enfant style.css
sont correctement propagées dans les caches?
J'ai lu à quelques endroits que WP devrait/serait en train de placer la version WP dans nnn
lorsque la ressource est extraite sous la forme http://Host/wp-content/themes/theme-child/style.css?ver=nnn
. Dans mon installation à http://frightanic.com/ je vois que la version thème parent} est utilisée à la place. J'ai le cache total W3 et un CDN mais même s'ils sont désactivés, une ressource telle que wp-content/themes/frightanic/style.css?ver=3.0.7
est demandée. 3.0.7
est la version du thème Decode parent.
Quoi qu'il en soit, si je mets à jour mon CSS du thème enfant sans mettre à jour ni WP ni le thème parent en même temps, comment puis-je le supprimer des caches?
Le commentaire de @ dalbaeb a finalement abouti à des discussions approfondies et à une solution réalisable. Merci beaucoup!
Je crois que la raison pour laquelle mon CSS du thème enfant a été chargé à l'aide de 'ver=<parent-theme-version>
est que j'ai suivi le codex WP _ sur les thèmes enfants 1: 1. Mon functions.php
contenait ceci:
add_action('wp_enqueue_scripts', 'theme_enqueue_styles');
function theme_enqueue_styles() {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
}
Le code que j'ai finalement utilisé a été mentionné pour la première fois dans https://wordpress.stackexchange.com/a/182023/30783 mais de nombreux sites sur Internet l'ont copié-collé (sans le moindre crédit).
// Making sure your child theme has an independent version and can bust caches: https://wordpress.stackexchange.com/a/182023/30783
// Filter get_stylesheet_uri() to return the parent theme's stylesheet
add_filter('stylesheet_uri', 'use_parent_theme_stylesheet');
// Enqueue this theme's scripts and styles (after parent theme)
add_action('wp_enqueue_scripts', 'my_theme_styles', 20);
function use_parent_theme_stylesheet()
{
// Use the parent theme's stylesheet
return get_template_directory_uri() . '/style.css';
}
function my_theme_styles()
{
$themeVersion = wp_get_theme()->get('Version');
// Enqueue our style.css with our own version
wp_enqueue_style('child-theme-style', get_stylesheet_directory_uri() . '/style.css',
array(), $themeVersion);
}
Mise à jour 2017-01-26
Le manuel actuel WP Theme contient désormais un correctif approprié :: https://developer.wordpress.org/themes/advanced-topics/child-themes/#3-enqueue-stylesheet
Cela fonctionne bien lorsque vous ajoutez directement dans votre header.php et actualisez le cache chaque fois que vous mettez à jour votre fichier CSS:
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); echo '?' . filemtime( get_stylesheet_directory() . '/style.css'); ?>" type="text/css" media="screen" />
Il affiche: style.css? 324932684 où le nombre correspond à l'heure à laquelle le fichier a été modifié
Cela peut fonctionner aussi bien. Utilisation de la fonction php Rand:
function theme_enqueue_styles() {
$parent_style = 'parent-style';
wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style',
get_stylesheet_directory_uri() . '/style.css?'.Rand(),
array( $parent_style )
);
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );