Quelle est l'importance de mettre en file d'attente la feuille de style d'un thème?


19

J'ai parcouru le net à la recherche d'une réponse à cela, mais pour une raison quelconque, tout ce que je peux trouver sont des exemples réels, mais sans cette explication particulière, ce qui est clairement dit dans le cas des scripts. Quelqu'un peut-il m'expliquer pourquoi il est important / avantageux de mettre en file d'attente les styles lors du développement d'un thème, plutôt que de simplement utiliser <link rel=stylesheet>dans header.php.

Aussi, qu'en est-il de la feuille de style par défaut du thème, cela devrait-il également être mis en file d'attente?


il est encouragé par les exigences d'examen des thèmes. codex.wordpress.org/… bien qu'en option, vous POUVEZ simplement lier rel = la feuille de style principale dans l'en-tête
helgatheviking

1
La feuille de style par défaut (ie: style.css à la racine du répertoire de votre thème) est automatiquement chargée, donc n'a pas besoin d'être mise en file d'attente. Si tout votre CSS pour votre thème est contenu dans cette feuille de style (ou si vous utilisez des règles «d'importation» dans cette feuille de style pour charger le CSS), aucune mise en file d'attente supplémentaire n'est requise. Cependant, pour une plus grande flexibilité au sein des thèmes enfants, il peut être avantageux de mettre en file d'attente conditionnelle du CSS supplémentaire qui peut être omis par n'importe quel thème enfant, comme l'illustre @kaiser.
Tom Auger

Réponses:


17

Il est important de mettre en file d'attente la feuille de style, car elle permettra aux thèmes enfants de la retirer de la file d'attente ainsi que d'être répertoriée pour les dépendances et une multitude d'autres choses. Il permet généralement une plus grande flexibilité, à la fois pour vous et pour tout autre développeur qui interagit avec votre code.

Il est également important de noter que l'utilisation de la feuille de style par défaut dans votre thème n'est pas obligatoire. La feuille de style doit être PRÉSENTE, mais si vous ne l'utilisez que pour nommer votre thème, définir la version, etc., wordpress est COMPLÈTEMENT bien avec cela, tout comme les personnes qui approuvent les thèmes pour le référentiel principal.


17

En complément de l'autre réponse de @ m0r7if3r:

Vous pouvez utiliser current_theme_supports()pour charger la feuille de style des thèmes parents uniquement si le thème est pris en charge.

function add_supported_stylesheets()
{
    if ( current_theme_supports( 'parent-stylesheet' ) )
        wp_enqueue_style( 'main', get_stylesheet_directory_uri().'/style.css', array(), filemtime( get_stylesheet_directory().'/style.css' );
}

// In your parent themes bootstrap in the functions.php file
// Add the theme support:
add_theme_support( 'parent-stylesheet' );
// Then add the stylesheet:
add_action( 'after_setup_theme', 'add_supported_stylesheets', 20 );

Notez que cette fonction s'ajoute filemtimeà la version-nr. pour empêcher la mise en cache du navigateur si le contenu des fichiers a été modifié.

Cela permettra à vos utilisateurs de désactiver la feuille de style dans le bootstrap des thèmes enfants avec un simple appel fn:

remove_theme_support( 'parent-stylesheet' );
// ...or...
add_theme_support( 'parent-stylesheet' );

3

Une autre raison de la mise en file d'attente est qu'elle permet aux plugins de faire des choses avec les styles. Par exemple, Better WordPress Minify concaténera automatiquement et les fichiers CSS, et WP-LESS compilera vos fichiers LESS et les mettra en cache à la volée. Ils le font tous les deux en se connectant à la file d'attente des styles et en traitant les fichiers qui y sont alignés.

Il peut y avoir des raisons spécifiques pour lesquelles certains styles doivent être exclus de telles choses, mais en général, il est bon de rendre vos styles disponibles pour de telles fonctionnalités utiles.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.