wp style de mise en file d'attente sur des modèles de page spécifiques

18

Je suis en train de créer un thème et j'aimerais ajouter des pages de destination à l'aide de modèles de page. Je ne trouve aucun endroit qui montre comment mettre en file d'attente un style ou un js pour des modèles de page spécifiques. Aucune suggestion. Ex. Landing Page 1 - landing-page-template-one.php aura besoin d'un style et d'un js très différents de ceux du blog ou de la page d'accueil.

    
posée Sean 08.08.2012 - 21:20

4 réponses

23

Si vous envisagez de faire beaucoup de développement WP, vous devriez ajouter cette page à vos favoris: enlace

L'autre réponse fonctionne, mais le conditionnel repose sur votre slug de page (myurl.com/this-is-the-slug) qui ne change jamais. Une méthode plus fiable (IMO), adaptée à ce cas, consisterait à utiliser à la place la vérification conditionnelle is_page_template('example-template.php') .

    
réponse donnée kchjr 08.08.2012 - 23:01
21

Vous pouvez utiliser la condition is_page( 'landing-page-template-one' ) autour de vos styles / scripts spécifiques à une page dans le cadre de vos instructions de mise en file d'attente globale.

function my_enqueue_stuff() {
  if ( is_page( 'landing-page-template-one' ) ) {
    /** Call landing-page-template-one enqueue */
  } else {
    /** Call regular enqueue */
  }
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );

Vous pouvez même enchaîner plus de elseif dans ce qui précède pour d'autres pages, etc.

Référence: Référence sur les fonctions - is_page()

    
réponse donnée Edward Caissie 08.08.2012 - 21:34
1

Si le modèle de page se trouve dans un sous-répertoire du thème (depuis WP 3.4), ajoutez le nom du dossier et une barre oblique au nom du modèle, par exemple:

is_page_template( 'templates/about.php' );

Donc, toute la fonction ressemble à:

function my_enqueue_stuff() {
  if ( is_page_template( 'landing-page-template-one' ) ) {
    /** Call landing-page-template-one enqueue */
  } else {
    /** Call regular enqueue */
  }
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );

Référence: documentations officielles

    
réponse donnée Razon K. 21.10.2018 - 06:58
0

Je ne sais pas si les solutions proposées dans d'autres réponses fonctionnaient auparavant, mais (vu qu'il n'y a pas de réponse acceptée!), il semble que la bonne réponse soit actuellement:

function my_enqueue_stuff() {
    if ( get_page_template_slug() == 'landing-page-template-one.php' ) {
        wp_enqueue_script('my-script-handle', 'script-path.js', ... );
    }
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );

is_page_template () ne fonctionne qu'en dehors de la boucle, selon enlace .

    
réponse donnée richplane 22.12.2016 - 14:08

Lire d'autres questions sur les étiquettes