web-dev-qa-db-fra.com

Comment mettre conditionnellement en file d'attente une feuille de style uniquement pour une ou plusieurs pages?

Avant de commencer, je tiens à reconnaître que de très bons articles sont consacrés à la mise en file d'attente conditionnelle des scripts en fonction du contenu de la page/publication.

Ce sont excellents, mais ils sont beaucoup plus avancés que ce que je veux faire.

J'ai l'impression que la réponse consiste à utiliser la fonction is_page() intégrée ( codex ), mais lorsque j'essaie de l'utiliser, le site se rompt ou ne fonctionne tout simplement pas.

Je pense que je suis juste en train d'exécuter la logique conditionnelle au mauvais endroit.

Voici ce que j'ai essayé d'ajouter à mon functions.php:

function wpse39130_register_more_stylesheets() {
    wp_register_style( 'stylesheet_name', get_stylesheet_directory_uri() . '/stylesheet.css' );
}
add_action( 'init', 'wpse39130_register_more_stylesheets' );

function wpse39130_conditionally_enqueue_my_stylesheet() {
    // only enqueue on product-services page slug
    if ( is_page( 'products-services' ) ) {
        wp_enqueue_style( 'stylesheet_name' );
    }
}
add_action( 'wp_enqueue_scripts', 'wpse39130_conditionally_enqueue_my_stylesheet' );

Lorsque je supprime la partie conditionnelle de celle-ci, la feuille de style est mise en file d'attente avec succès. Je sais donc que cela fonctionne.

10
Evan Mattson

Je copie votre code collé dans mon environnement de développement, je ne change que le nom de la page et cela fonctionne parfaitement. Êtes-vous sûr que la page n'a pas été mise en file d'attente et que la page n'a pas été correctement indiquée ou que la page n'a pas été nommée correctement

4
mor7ifer

Ce que vous avez est juste - vous ne faites que l'accrocher à la mauvaise action. Essayez l'action "wp" au lieu de "init". Quand init est lancé, is_page () ne fonctionnera pas encore correctement.

EDIT: Je me trompe. Je pensais que vous aviez add_my_stylesheet accroché à init, mais ce n'est pas le cas. is_page devrait fonctionner à partir de l'action enqueue_scripts. Désolé ... continue ...

2
MathSmath