Perché style.css non viene accodato?
Ho un tema abbastanza basilare e ho appena scoperto che il mio file style.css non viene caricato nel <head>
. Ho già cercato in giro ma non riesco a capire perché non si carichi.
Ho già ispezionato l'oggetto global $wp_styles
ma non ho trovato nulla:
function style_test()
{
$wp_styles = new WP_Styles();
echo '<pre>';
// $wp_styles->enqueue è completamente vuoto
print_r( $wp_styles->registered );
echo '</pre>';
}
add_action( 'wp_print_scripts', 'style_test', 0 );
Anche all'interno dell'oggetto non riesco a trovare i miei fogli di stile registrati/accodati (che vengono comunque caricati), quindi immagino che sto sbagliando qualcosa anche nell'ispezione. Qualche idea?
Nota:
Se lo accodo manualmente, il mio file style.css viene caricato. È solo il caricamento automatico che non funziona. Inoltre posso accedere al file con get_theme_data( TEMPLATEPATH.'/style.css' );
senza problemi.

I fogli di stile del tema solitamente non vengono accodati (enqueued), ma vengono caricati normalmente utilizzando...
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />
Quindi naturalmente non li vedrai nell'array degli stili...
Puoi ovviamente (se preferisci) utilizzare un accodamento (enqueue) invece.

Il modo consigliato per farlo è caricare style.css tramite la coda (enqueue) nel file functions.php del tema.
Aggiungi questo codice a functions.php
/**
* Carica CSS e JS nel modo corretto
*/
function myprefix_load_css_and_js() {
wp_enqueue_style( 'style', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'myprefix_load_css_and_js' );
Puoi fare riferimento a questo nella guida ufficiale dei temi WordPress qui e vedere degli esempi qui.

Upvotato, ma una piccola correzione è che probabilmente è meglio definire la funzione in modo anonimo all'interno della chiamata add_action piuttosto che aggiungerla al namespace globale, visto che non viene chiamata altrove.

Ciao @kloddant, grazie per il suggerimento. Anche se concordo che averla nel namespace globale può essere problematico, preferirei avere un nome. Solo per avere la possibilità di scollegarla programmaticamente in futuro se necessario. Normalmente risolvo questo problema anteponendo alla funzione qualcosa di unico e lungo.

Questa è una duplicazione della risposta di @Arun Basil Lal sopra.

Piccola osservazione sulla risposta di Arun sopra. Come ha detto, dovresti accodarlo nel file functions.php, ma probabilmente è meglio definirlo e chiamarlo in modo anonimo all'interno della funzione add_action, dato che non lo chiami da nessun'altra parte. In questo modo, eviti di aggiungerlo allo spazio dei nomi globale.
add_action('wp_enqueue_scripts', function () {
wp_enqueue_style('style', get_stylesheet_uri());
});
