Vreau să includ style.css în fișierul functions.php?

19 aug. 2016, 07:52:23
Vizualizări: 17.5K
Voturi: 2

Sunt nou în WordPress. Încerc să includ fișierul meu folosind:

<link rel='stylesheet' href="<?php bloginfo("stylesheet_url")?>"/>

Dar dacă încarc fișierul CSS prin functions.php folosind wp_enqueue_style, nu funcționează. De ce? Unde este greșeala mea?

<?php wp_enqueue_style('style',get_template_directory_uri())?>

Care este soluția pentru această problemă?

0
Toate răspunsurile la întrebare 2
0

Apelezi funcția greșit. Nu ai specificat numele fișierului, ci doar un director.

Din codex

wp_enqueue_style( string $handle, string $src = false, array $deps = array(), string|bool|null $ver = false, string $media = 'all' )

deci în cazul tău, ar trebui să folosești wp_enqueue_style astfel:

add_action( 'wp_enqueue_scripts', 'wpse_my_style' );
function wpse_my_style(){
  wp_enqueue_style( 'my-style', get_stylesheet_directory_uri() . 'calea/catre/css-ul/tau' );
}    

restul parametrilor sunt opționali

19 aug. 2016 08:12:03
9
-1
function wpdocs_style() {
wp_enqueue_style( 'style-name', get_stylesheet_uri() );  //Acesta este pentru a obține style.css din tema curentă
wp_enqueue_style( 'style-name1', get_teplate_directory_uri() . '/css/custom.css', array('jquery') );   //Acesta este pentru a obține un alt fișier CSS din directorul părinte  
wp_enqueue_script( 'script-name1', get_teplate_directory_uri() . '/js/custom.js', array('jquery') );   //Acesta este pentru a obține fișierul JS din directorul părinte  
}
add_action( 'wp_enqueue_scripts', 'wpdocs_style' );
             SAU
//Sau ca alternativă poți folosi hook-ul wp_head
add_action( 'wp_head', 'wpdocs_style' );

Pentru a rula funcția de mai sus, trebuie să adaugi <?php wp_enqueue_script("jquery"); ?> (dacă folosești această acțiune add_action( 'wp_enqueue_scripts', 'wpdocs_style' );) în header.php înainte de </head>.

Trebuie să dai un nume fiecărui stil (cum am făcut eu cu style-name, style-name1 etc) și numele trebuie să fie unic. Dacă vrei să încarci din functions.php al temei child, atunci trebuie să folosești get_stylesheet_directory_uri() în loc de get_teplate_directory_uri().

19 aug. 2016 08:32:11
Comentarii

Întrebarea OP nu menționează deloc jQuery. Și NU ar trebui să-l adăugați pur și simplu în header.php, ar trebui să-l încărcați la fel ca stilurile.

ngearing ngearing
19 aug. 2016 08:46:50

get_stylesheet_directory_uri() va funcționa atât pentru tema principală, cât și pentru tema copil

bynicolas bynicolas
19 aug. 2016 08:46:52

@Nath Știu că nu a menționat jQuery! Și ce dacă, dacă vreau să ofer informații suplimentare care îl vor ajuta pe el, dar și pe viitorii vizitatori.

Rishabh Rishabh
19 aug. 2016 08:52:03

Bine, trebuie să explici mai bine atunci. Și, de asemenea, să oferi informații corecte.

ngearing ngearing
19 aug. 2016 08:53:22

@Nath Am arătat metoda corectă. Nu înțeleg ce e greșit în codul meu! Așa obișnuiam să fac și funcționează perfect în cazul meu. Nu știu de ce spui că nu este corect! Ai spus că nu ar trebui adăugat în header.php! Dacă nu acolo, atunci unde? Dacă ai o metodă mai bună, postează un răspuns, aș dori și eu să știu o abordare mai bună.

Rishabh Rishabh
19 aug. 2016 10:16:34

@Rishabh Încorporezi jQuery exact la fel cum încorporezi orice altceva. Adică folosind hook-ul wp_enqueue_scripts. Ai spus că pentru a rula codul tău, trebuie să adăugăm jQuery în header.php înainte de </head> de ce spui asta? Pur și simplu nu este adevărat. Mai ales că nu este adevărat când adaugi fișiere CSS. Deci, dacă vrei să oferi mai multe informații pentru a-l ajuta pe el și pe alții care vor citi acest răspuns, te rog să o faci într-un mod care nu induce în eroare. În niciun caz CSS-ul nu are nevoie de jQuery pentru a funcționa. Cu wp_enqueue_script ai un parametru care îi spune WP să încarce în <head> sau înainte de închiderea </body>

bynicolas bynicolas
19 aug. 2016 15:38:00

Deci în loc să adaugi scripturi peste tot, făcând codul mai greu de depanat și citit, poți adăuga toate scripturile în același loc și să folosești parametrul $deps care îi spune WordPress în ce secvență să încarce scripturile/CSS-ul pentru a respecta dependențele tale.

bynicolas bynicolas
19 aug. 2016 15:40:09

@bynicolas Am înțeles punctul tău. Dar în răspunsul meu actualizat am arătat o metodă alternativă de hook cu wp_head și în descriere am spus să adaugi <?php wp_enqueue_script("jquery"); ?> dar am menționat doar dacă nu folosești hook-ul cu wp_head. Deci, a doua metodă în care am arătat cum să adaugi hook cu wp_head în loc de wp_enqueue_scripts, este în regulă conform opiniei tale?

Rishabh Rishabh
19 aug. 2016 16:08:27

Chiar dacă funcționează, nu aș recomanda această practică ca standard, este mai bine să grupezi toate scripturile/CSS-ul împreună, făcând codul mai ușor de citit și înțeles pentru tine (dezvoltatorul) și alții.

bynicolas bynicolas
19 aug. 2016 17:27:05
Arată celelalte 4 comentarii