Fügen Sie ‘wp_enqueue_scripts’ (CSS) in mehrere Vorlagen ein

5 meiner Vorlagen erfordern spezifisches Javascript. Derzeit funktioniert das unten, um Javascript in Page Template A zu laden.

add_action('wp_enqueue_scripts','css-flags'); function css-flags(){ if ( is_page_template('page-template-a.php') ) { wp_enqueue_style('css-flags', get_template_directory_uri() . '/css/flags.min.css', array(), '1.0.0', false ); } } 

Ich dachte, dass ich einfach Folgendes tun könnte, um die gleiche CSS-Datei zu den Vorlagen B, C und D hinzuzufügen, indem ich einfach den Vorlagennamen zu der ‘IF’-Variablen hinzufüge.

  add_action('wp_enqueue_scripts','css-flags'); function css-flags(){ if ( is_page_template('page-template-a.php','page-template-b.php','page-template-b.php') ) { wp_enqueue_style('css-flags', get_template_directory_uri() . '/css/flags.min.css', array(), '1.0.0', false ); } } 

Danke für die Richtung.

Solutions Collecting From Web of "Fügen Sie ‘wp_enqueue_scripts’ (CSS) in mehrere Vorlagen ein"

Das Seiten-Template scheint etwas undurchsichtiger zu sein, um das Laden Ihres CSS zu unterstützen. Verwenden Sie den Namen der Vorlage möglicherweise nicht, und verwenden Sie stattdessen den Seitennamen, da dies für die Benutzer des Themas offensichtlich ist. Bei Interesse könntest du etwas mehr so ​​ausprobieren:

 add_action('wp_enqueue_scripts', 'load_special_page_styles'); function load_special_page_styles() { global $post; if( is_page() ) { switch( $post->post_name ) { // post_name is actually the page slug case 'a-page': // if page slug is equal to 'a-page'... case 'b-page': case 'c-page': case 'd-page': case 'e-page': wp_enqueue_style( 'css-flags', get_stylesheet_directory_uri() . '/css/flags.min.css', array(), '1.0.0', 'all' ); // Note slight differences in use of wp_enqueue_style here wp_enqueue_script( 'js-flags', get_template_directory_uri() . '/js/flags.min.js', array('jquery'), '1.0.0', true ); // helpful param #2 loads jquery if not already loaded, and param #4 loads the flags.min.js script in the footer, after page content loads break; } } } 

is_page_template akzeptiert ein einzelnes Argument, das eine Zeichenfolge oder ein Array sein kann. Sie müssen nur Ihre Werte als einzelnes array() , damit es funktioniert:

 if ( is_page_template( array('page-template-a.php','page-template-b.php','page-template-b.php') ) ){ // do stuff } 

In PHP, || ist der Operator OR, also musst du es so aufbauen, dass du is_page_template() eine einzelne Vorlage is_page_template() so dass deine Bedingung wie folgt aussieht:

 if ( is_page_template('page-template-a.php') || is_page_template('page-template-b.php') || is_page_template('page-template-c.php') ) { // Code Here }