Come includere il file style.css nel file functions.php in WordPress
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?

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

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()
.

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

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

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

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

@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 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>

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 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?
