Pourquoi avons-nous besoin de "style.css" ?
Avant de donner ma solution, je pense qu'il est important de passer en revue les raisons pour lesquelles nous avons besoin de style.css
dans Wordpress
Dans Wordpress, le style.css
est nécessaire pour afficher les informations relatives au thème dans le fichier backend .
style.css
est également utilisé comme sortie par défaut de get_stylesheet_uri()
. Toutefois, il est possible de le personnaliser en utilisant l'option stylesheet_uri
filtre.
À mon avis, le fait que Wordpress vous oblige à avoir les informations de votre thème en style.css
est tout simplement mal conçu, car il ajoute environ 1032 octets. Ce n'est pas beaucoup, mais c'est complètement inutile, surtout si cela peut être évité, car la taille du fichier est peut-être le facteur qui a le plus d'impact sur les performances du site.
Contrairement au CMS Drupal où les informations sur votre thème sont stockées dans un fichier séparé tel que yourtheme.info
et n'est donc jamais exposé à l'utilisateur final
Solution 1
Maintenant que nous avons éliminé ce point, voici la solution !
La meilleure approche, à mon avis, serait la suivante :
- Compilez tous vos fichiers sass dans un seul fichier (tel que
style.min.css
), en utilisant des importations et des partiels (voir http://sass-lang.com/guide#topic-5 ). N'hésitez pas à lui donner un autre nom.
- Laissez tous les en-têtes de votre thème wordpress dans
style.css
.
Par exemple, comme ceci :
style.css
/*
Theme Name: Twenty Thirteen
Theme URI: http://wordpress.org/themes/twentythirteen
Author: the WordPress team
Author URI: http://wordpress.org/
Description: The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: black, brown, orange
Text Domain: twentythirteen
Use it to make something cool, have fun, and share what you've learned with others.
*/
style.min.css
p{color:red;}h1{color:blue;} ...
Vous pouvez ensuite vous assurer que la nouvelle feuille de style est ajoutée sur chaque page du frontend en utilisant le code suivant dans votre fichier functions.php
fichier :
function theme_name_stylesheets() {
wp_enqueue_style('style-name', get_template_directory_uri() . '/style.min.css');
}
add_action( 'wp_enqueue_scripts', 'theme_name_scripts' );
Voir : https://codex.wordpress.org/Function_Reference/wp_enqueue_style pour plus d'informations
Ainsi, lorsque votre course wp_head()
dans votre head
de votre document, il ajoutera automatiquement le bon fichier CSS.
Ensuite, vous pouvez exécuter sass-lint
sur vos fichiers sass, mais conservez les informations relatives à votre thème dans votre fichier style.css
ce qui permet d'obtenir le meilleur des deux mondes.
Avantages
-
Passe sass-lint car aucun des fichiers sass ne contient de commentaires du type
/* ... */
car les en-têtes du thème sont dans style.css
PAS style.min.css
-
Taille de fichier plus petite pour la feuille de style, comme le
style.min.css
ne contient plus les informations d'en-tête du thème, car elles sont stockées dans le fichier style.css
-
Meilleures performances du site : Comme tous vos fichiers SCSS sont compilés en un seul fichier CSS, le nombre de requêtes HTTP envoyées à votre serveur diminue, ce qui améliore les performances globales de votre site.
Inconvénients
-
Deux fichiers CSS . Ce n'est pas vraiment un inconvénient, car l'utilisateur sur le front-end ne reçoit que l'adresse de l'utilisateur.
style.min.css
et non le style.css
-
Peut confondre les utilisateurs de la communauté Wordpress . La plupart des utilisateurs de Wordpress s'attendent à ce que vos styles soient dans le format
style.css
. Cependant, je doute que cela soit un gros problème (surtout si vous ne publiez pas votre thème) et peut être rectifié par un simple commentaire.
Solution 2
Une autre solution à votre problème est de désactiver temporairement la règle scss-lint Comment en utilisant ce qui suit :
// scss-lint:disable Comment
/*!
Theme Name: Twenty Thirteen
Theme URI: http://wordpress.org/themes/twentythirteen
Author: the WordPress team
Author URI: http://wordpress.org/
Description: The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: black, brown, orange
Text Domain: twentythirteen
Use it to make something cool, have fun, and share what you've learned with others.
*/
// scss-lint:enable Comment
p {
font-size: 16px;
}
Notez également l'utilisation de commentaires forts (c'est-à-dire /*! ... */
au lieu de /* ... */
) . Cela signifie essentiellement que ce commentaire ne doit pas être supprimé dans les versions miniaturisées de sass.
Avantages
- Un fichier CSS
- Moins de risques de confusion pour les utilisateurs de la communauté Wordpress.
-
Passe sass-lint car les règles de commentaires sont temporairement désactivées !
-
Meilleures performances du site : (même raison que la solution 1)
Inconvénients
-
Taille de fichier plus importante pour la feuille de style, car le fichier CSS compilé contient les informations d'en-tête du thème. Il ne s'agit toutefois que d'une faible augmentation.
Qu'en est-il des utilisateurs finaux qui n'utilisent pas Sass ou Grunt/Gulp ?
Dans un autre commentaire, vous avez dit que vous vouliez que les utilisateurs puissent modifier des éléments mineurs sans installer sass ou un outil d'automatisation de la construction.
Cela ne signifie pas que VOUS ne pouvez pas utiliser un outil d'automatisation de la construction. Cela signifie simplement que votre fichier CSS compilé à partir de la solution 1 ou 2, ne doit pas être minifié, car les utilisateurs ne peuvent pas facilement modifier le fichier ! Malheureusement, cela signifie que la taille du fichier de votre site sera beaucoup plus importante et qu'il sera donc plus lent.
Alternativement, vous pouvez avoir deux fichiers : - website.min.css
: la version miniaturisée du SCSS compilé - website.css
: la version étendue du SCSS compilé
[Encore une fois, nommez-les comme vous le souhaitez]
Ensuite, si l'utilisateur souhaite effectuer des modifications rapides sans sass ou Grunt/Gulp, il peut le faire à l'adresse suivante website.css
(cependant, l'utilisateur doit également modifier le fichier qui est chargé en functions.php
)
De plus, les utilisateurs expérimentés qui ont une expérience de sass ou les utilisateurs qui ne veulent pas faire de changements ne doivent pas faire de compromis, car ils peuvent toujours profiter de la vitesse de minification. website.min.css
version !
Le meilleur des deux mondes !