web-dev-qa-db-fra.com

ajout de la feuille de style générée à partir du thème parent après child-themes style.css

J'ai un thème enfant -> configuration parent-thème, où il me faut une feuille de style appelée generate.css, en plus du fichier style.css ajouté par le thème enfant actif. Le fichier généré.css réside dans le thème parent et est généré de manière dynamique et fourni par le thème parent.

J'ai commencé de façon évidente, en ajoutant simplement une règle d'importation au début du style.css enfant-themes:

/* Get Parent BASE CSS */
@import url('../parent-theme/style.css');


/* Get Parent GENERATED CSS */
@import url('../parent-theme/generated.css');

Mais cela ne fonctionne pas pour deux raisons.

1) Je veux pouvoir ajouter un numéro de version anti-cache au fichier:

<link rel='stylesheet'  href='http://www.com/wp-content/themes/parent-theme/generated.css?ver=2389642855'>

2) Je veux que le fichier soit chargé en dernier, après les thèmes enfants style.css

Est-il possible d'insérer le chargement de cette feuille de style généré.css dans la tête afin qu'elle soit ajoutée après le style.css du thème enfant à l'aide du fichier functions.php du thème parent?

Quel crochet ou WP mécanisme puis-je utiliser?

2
mikkelbreum

Absolument!

Dans functions.php, comme vous l'avez dit. Je l'appellerai cache_busting_styles parce que j'aime bien le son.

Tout d’abord, vous configurez le style via wp_enqueue_style, puis vous l’appelez lors du hook d’action wp_print_styles. De plus, vous voudrez configurer une variable et la transmettre également comme numéro de version:

function cache_busting_styles() {
    //however you set up your version number here
    $version = 'cachebustingversion';
    wp_enqueue_style('cachebusting', get_bloginfo('template_url').'/parent-theme/generated.css', '', $version, 'screen');
}
add_action('wp_print_styles', 'cache_busting_styles');

wp_enqueue_style accepte 5 arguments, d’abord le descripteur, un identifiant wordpress associé à la feuille de style (doit être unique), ensuite l’URL du fichier, enfin les autres fichiers dont il dépend (tout fichier requis devant être chargé avec ce fichier, I laissé la valeur null, vous pouvez ajouter ce que vous voulez, il utilise d'autres poignées de feuilles de style mises en file d'attente), la quatrième version est ajoutée à la fin de l'URL du lien, exactement comme ce que vous recherchez (vous pouvez y insérer ce que vous voulez, WordPress place sa version actuelle ici par défaut), et enfin l'argument de support pour le fichier CSS (écran, impression, tout, etc.) J'espère que cela aide!

Edit: Je voulais juste préciser que l’utilisation de cette méthode devrait toujours ajouter cette feuille après la feuille de style par défaut, mais pour en être sûr, add_action accepte un troisième argument, qui est la priorité de l’action. Un très grand nombre le garantira, mais une valeur de 8 ou 12 devrait suffire, au cas où vous auriez besoin de forcer la commande.

add_action('wp_print_styles', 'cache_busting_styles', 12);
3
Drew Gourley

vous pouvez simplement mettre en file d'attente le style généré.css. Utilisez le code suivant dans votre fichier function.php de thèmes enfants

wp_enqueue_style('name_of_theme', get_bloginfo('template_directory') . '/generated.css', array(), '1.0', 'screen');
0
Amit Singh