wp enqueue style pe template-uri specifice de pagini
Sunt în procesul de dezvoltare a unei teme și aș dori să adaug landing page-uri folosind template-uri de pagină. Nu pot găsi nicăieri cum să încarc stiluri sau JavaScript pentru template-uri specifice de pagină. Aveți sugestii? Ex. Landing Page 1 - landing-page-template-one.php va avea nevoie de stiluri și JavaScript foarte diferite față de blog sau pagina principală.
function enqueue_template_specific_assets() {
// Verifică dacă pagina curentă folosește un anumit template
if (is_page_template('landing-page-template-one.php')) {
// Încarcă stiluri specifice pentru acest template
wp_enqueue_style('landing-one-style', get_template_directory_uri() . '/css/landing-one.css');
// Încarcă JavaScript specific pentru acest template
wp_enqueue_script('landing-one-script', get_template_directory_uri() . '/js/landing-one.js');
}
}
add_action('wp_enqueue_scripts', 'enqueue_template_specific_assets');
Dacă intenționați să faceți multă dezvoltare WordPress, ar trebui să marcați această pagină: http://codex.wordpress.org/Conditional_Tags
Cealaltă soluție funcționează, dar condiționalul se bazează pe faptul că slug-ul paginii (myurl.com/acesta-este-slug-ul) nu se va schimba niciodată. O metodă mai fiabilă (după părerea mea) și care se potrivește în acest caz, ar fi să utilizați verificarea condițională is_page_template('example-template.php')
în schimb.

Puteți utiliza condiția is_page( 'landing-page-template-one' )
în jurul stilurilor / scripturilor specifice paginii ca parte a declarațiilor voastre generale de încărcare.
function my_enqueue_stuff() {
if ( is_page( 'landing-page-template-one' ) ) {
/** Apelarea încărcării pentru landing-page-template-one */
} else {
/** Apelarea încărcării normale */
}
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );
Puteți chiar să adăugați mai multe condiții elseif
în exemplul de mai sus pentru alte pagini, etc.
Referință: Referință Funcții - is_page()

Cred că folosirea is_page_template()
este de preferat, deoarece slug-ul paginii poate fi ușor schimbat. Această soluție, deși funcționează bine, s-ar strica dacă slug-ul ar fi modificat. Consultați soluția lui kchjr dacă cineva întâmpină probleme în viitor.

Mulțumesc! Pentru alții care au dat peste asta: condiția is_page
trebuie să fie în funcția atașată acțiunii și nu să încadreze declarația add_action
în sine. Dacă încadrați declarația add_action
într-o condiție, va fi prea devreme în procesarea paginii pentru a ști despre ce pagină este vorba.

Dacă șablonul de pagină se află într-un subdirector al temei (începând cu WP 3.4), adaugă numele folderului și o bară oblică înaintea numelui fișierului șablon, de exemplu:
is_page_template( 'templates/about.php' );
Deci, întreaga funcție ar arăta astfel:
function my_enqueue_stuff() {
if ( is_page_template( 'landing-page-template-one' ) ) {
/** Apelare încărcare resurse pentru landing-page-template-one */
} else {
/** Apelare încărcare resurse standard */
}
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );
Referință: Documentația Oficială

Nu știu dacă soluțiile furnizate în alte răspunsuri au funcționat, dar (deoarece nu există un răspuns acceptat!) se pare că răspunsul corect este în prezent:
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() funcționează doar în afara loop-ului, conform https://developer.wordpress.org/reference/functions/is_page_template/.

conform documentației menționate, nu poate fi folosit în interiorul loop-ului

Dacă numele șablonului tău este temper și vrei să încarci bootstrap pe acea pagină, poți încărca stilurile specifice pentru anumite șabloane de pagini astfel:
Accesează fișierul function.php și verifică condiția în felul următor:
function temper_scripts() {
if(basename(get_page_template()) == 'temper.php'){
wp_enqueue_style('bootstrap', '//stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css');
}
}
add_action('wp_enqueue_scripts', 'temper_scripts');

Acesta funcționează perfect.
function my_enqueue_stuff() {
// "page-templates/about.php" reprezintă calea către fișierul template. Dacă fișierul template se află în folderul rădăcină al temei, atunci folosește "about.php".
if(is_page_template( 'page-templates/about.php' ))
{
wp_enqueue_script( 'lightgallery-js', get_template_directory_uri() . '/js/lightgallery-all.min.js');
wp_enqueue_script('raventours-picturefill', "https://cdn.jsdelivr.net/picturefill/2.3.1/picturefill.min.js", true, null);
}
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );

function enqueue_my_script() {
if ( is_page_template( 'my-page-template.php' ) ) {
wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/my-script.js', array( 'jquery' ), '1.0', true );
}
}
add_action( 'wp_enqueue_scripts', 'enqueue_my_script' );
În acest exemplu, funcția enqueue_my_script este conectată la acțiunea wp_enqueue_scripts, care este apelată de WordPress când încarcă scripturile și fișierele de stil.
Funcția utilizează funcția is_page_template pentru a verifica dacă pagina curentă utilizează un șablon de pagină specific (în acest caz, 'my-page-template.php'). Dacă condiția este adevărată, funcția wp_enqueue_script este apelată pentru a încărca scriptul 'my-script'.
Funcția wp_enqueue_script acceptă următoarele argumente:
'my-script': Acesta este identificatorul unic pentru script, folosit pentru a face referire la script atunci când este înregistrat.
get_template_directory_uri() . '/js/my-script.js': Aceasta este URL-ul fișierului JavaScript.
array( 'jquery' ): Aceasta specifică faptul că scriptul depinde de scriptul jquery, ceea ce înseamnă că ar trebui să fie încărcat după scriptul jquery.
'1.0': Acesta este numărul de versiune al scriptului.
true: Aceasta specifică faptul că scriptul ar trebui să fie încărcat în subsolul documentului HTML.
Puteți utiliza și alte tag-uri condiționale, cum ar fi is_home, is_front_page, is_single și `
