Come includere il file style.css nel file functions.php in WordPress

19 ago 2016, 07:52:23
Visualizzazioni: 17.5K
Voti: 2

Sono nuovo su WordPress. Sto includendo il mio file usando

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

Ma se metto in coda il mio file css in functions.php non funziona. Perché? Dove sbaglio?

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

Qual è la soluzione per questo problema?

0
Tutte le risposte alla domanda 2
0

Stai chiamando la funzione in modo errato. Non hai specificato il nome del file, ma solo una directory.

Dal codex

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

quindi nel tuo caso, dovresti accodare lo stile così:

add_action( 'wp_enqueue_scripts', 'wpse_my_style' );
function wpse_my_style(){
  wp_enqueue_style( 'my-style', get_stylesheet_directory_uri() . 'percorso/del/tuo/css' );
}    

il resto dei parametri sono opzionali

19 ago 2016 08:12:03
9
-1
function wpdocs_style() {
wp_enqueue_style( 'style-name', get_stylesheet_uri() );  //Questo serve per ottenere style.css del tema corrente
wp_enqueue_style( 'style-name1', get_teplate_directory_uri() . '/css/custom.css', array('jquery') );   //Questo serve per ottenere altri file css dalla directory principale  
wp_enqueue_script( 'script-name1', get_teplate_directory_uri() . '/js/custom.js', array('jquery') );   //Questo serve per ottenere file JS dalla directory principale  
}
add_action( 'wp_enqueue_scripts', 'wpdocs_style' );
             OPPURE
//In alternativa puoi usare l'hook wp_head
add_action( 'wp_head', 'wpdocs_style' );

Per far funzionare la funzione sopra, devi aggiungere <?php wp_enqueue_script("jquery"); ?> (se usi questa azione add_action( 'wp_enqueue_scripts', 'wpdocs_style' );) nel file header.php prima del tag </head>.

Devi assegnare un nome a ogni stile (come ho fatto io con style-name, style-name1 ecc.) e il nome deve essere univoco. Se vuoi fare l'enqueue dal file functions.php del child theme, devi usare get_stylesheet_directory_uri() invece di get_teplate_directory_uri().

19 ago 2016 08:32:11
Commenti

La domanda dell'OP non menziona affatto jQuery. E NON dovresti semplicemente aggiungerlo in header.php, dovresti metterlo in coda come gli stili.

ngearing ngearing
19 ago 2016 08:46:50

get_stylesheet_directory_uri() funzionerà sia per il tema che per il child theme

bynicolas bynicolas
19 ago 2016 08:46:52

@Nath So che non ha menzionato jQuery! E allora? Se voglio fornire informazioni aggiuntive che possano aiutare lui e anche i futuri visitatori.

Rishabh Rishabh
19 ago 2016 08:52:03

Ok, devi spiegarlo meglio allora. E anche fornire informazioni corrette.

ngearing ngearing
19 ago 2016 08:53:22

@Nath Ho mostrato il modo corretto. Non capisco cosa ci sia di sbagliato nel mio codice! Questo è il modo in cui sono solito fare e funziona bene nel mio caso. Non so perché dici che non è corretto! Hai detto che non dovrebbe essere aggiunto in header.php! Se non lì, allora dove? Se hai un modo migliore, posta una risposta, mi piacerebbe conoscere anche io un metodo migliore.

Rishabh Rishabh
19 ago 2016 10:16:34

@Rishabh Puoi aggiungere jQuery esattamente nello stesso modo in cui aggiungi tutto il resto. Cioè con l'hook wp_enqueue_scripts. Hai detto che per far funzionare il tuo codice, dobbiamo aggiungere jQuery in header.php prima di </head> perché dici questo? semplicemente non è vero. Specialmente non è vero quando si aggiungono file CSS. Quindi se vuoi fornire maggiori informazioni per aiutare lui e altri che leggeranno questa risposta, per favore fallo in un modo che non confonda le persone. In nessun modo il CSS richiede jQuery per funzionare. Con wp_enqueue_script hai un parametro che dice a WP di caricare in <head> o prima della chiusura di </body>

bynicolas bynicolas
19 ago 2016 15:38:00

Quindi, invece di aggiungere script ovunque rendendo più difficile il debug e la lettura del codice, puoi aggiungere tutti gli script nello stesso posto e utilizzare il parametro $deps che indica a WP in quale sequenza caricare gli script/CSS per rispettare le tue dipendenze.

bynicolas bynicolas
19 ago 2016 15:40:09

@bynicolas Ok ho capito il tuo punto. Ma nella mia risposta aggiornata ho mostrato un modo alternativo di hook con wp_head e nella descrizione ho detto di aggiungere <?php wp_enqueue_script("jquery"); ?> ma ho anche specificato solo se non usi l'hook con wp_head. Quindi il mio secondo metodo in cui ho mostrato l'hook da aggiungere con wp_head invece di wp_enqueue_scripts, secondo te va bene?

Rishabh Rishabh
19 ago 2016 16:08:27

Anche se funziona, non lo consiglierei come pratica standard, è meglio raggruppare tutti i tuoi script/CSS insieme, rende più facile per te (lo sviluppatore) e per gli altri leggere e comprendere il tuo codice.

bynicolas bynicolas
19 ago 2016 17:27:05
Mostra i restanti 4 commenti