J'utilise filemtime()
pour ajouter un numéro de version pour différents fichiers .css et .js dans un thème WordPress personnalisé.
J'ai utilisé la réponse acceptée décrite ici comme ligne directrice; Cependant, j'utilise les fonctions wp_retister_style()
et wp_register_script()
pour enregistrer mes fichiers .css et .js, respectivement, et les charge normalement via wp_enqueue_style()
et wp_enqueue_script()
. À titre d’exemple, j’enregistre le fichier sigle.css de cette manière:
wp_register_style('xyz_single', get_template_directory_uri() . '/css/single.css', false, filemtime(get_template_directory() . '/css/single.css'));
Le quatrième paramètre de la fonction ci-dessus ajoutera? Ver = nnnnnnnnà la feuille de style. La sortie finale sera quelque chose comme single.css?ver=nnnnnnnn, oùnnnnnnnnest un nombre représentant l’horodatage du fichier modifié afin d’être rechargé. Lorsque je modifie le thème, les problèmes de mise en cache sont résolus.
Maintenant, à ma question.
Dans mon thème custome, j'utilise rtl.css, qui est chargé automatiquement pour moi lorsque wp_head()
est appelé. Alors, comment puis-je ajouter rtl.css pour inclure un numéro de version?
Dans header.php, je charge style.css comme suit:
<link href="<?php echo get_stylesheet_uri() . '?ver=' . filemtime(get_stylesheet_directory() . '/style.css'); ?>" rel="stylesheet" type="text/css" />
Je charge toutes les autres feuilles de style en utilisant wp_register_style()
comme décrit ci-dessus, suivi de wp_enqueue_style()
. Voici un exemple:
wp_register_style('xyz_single', get_template_directory_uri() . '/css/single.css', false, filemtime(get_template_directory() . '/css/single.css'));
wp_enqueue_style('xyz-single');
Cependant, rtl.css est automatiquement chargé lorsque j'appelle wp_head()
dans header.php. S'il vous plaît lisez cet article sur la façon dont wp_head()
charge rtl.css; et donc ma question, comment puis-je ajouter un numéro de version à rtl.css s'il est appelé automatiquement?
Vous chargez le fichier-rtl.css en utilisant la méthode automatique de WordPress, c’est-à-dire qu’un rtl.css dans le dossier du thème sera automatiquement chargé par WordPress s’il présente et la direction de la langue actuelle ir rtl ( vous devriez ajouter cette information à la question, il a été difficile de comprendre comment vous chargez le fichier). Ce processus définit locale_stylesheet_uri
que vous pouvez utiliser pour modifier l'URL de la feuille de style de paramètres régionaux afin que vous puissiez y ajouter le paramètre version:
add_filter( 'locale_stylesheet_uri', function ($localized_stylesheet_uri) {
$time_ver = filemtime( get_stylesheet_directory() . '/rtl.css' );
return add_query_arg( array('ver' => $time_ver), $localized_stylesheet_uri );
});
Si vous avez également besoin de gérer les dépendances, vous devrez charger rlt.css file avec wp_enqueue_style
comme tout autre fichier css. Aucun moyen de gérer les dépendances avec le mode "auto".
D'après l'article que vous avez cité, il semble y avoir deux options simples:
remove_action( 'wp_head', 'locale_stylesheet' );
et le mettre en file d'attente avec votre propre code, quelque chose comme
global $$wp_locale;
$stylesheet_dir_uri = get_stylesheet_directory_uri();
$dir = get_stylesheet_directory();
$locale = get_locale();
if ( !empty($wp_locale->text_direction) && file_exists("$dir/{$wp_locale->text_direction}.css") )
enqueue "$stylesheet_dir_uri/{$wp_locale->text_direction}.css";
'locale_stylesheet_uri'
et ajoutez le suffixe que vous préférez à l'URL, ou renvoyez simplement ''
et mettez-le en file d'attente de la même manière que dans # 1