Come caricare il CSS nel footer

1 mag 2015, 19:09:39
Visualizzazioni: 72.6K
Voti: 22

Stavo cercando di spostare il caricamento del mio style.css nel footer del mio tema WordPress. Ho già fatto qualcosa di simile con 2 file js e funziona bene, si caricano nel footer:

function my_init() {
    if (!is_admin()) {
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://www.studionews24.com/wp-content/themes/network/js/jquery.min.js', false, '1.3.2', true);
        wp_enqueue_script('jquery');

        // carico un file JS dal mio tema: js/theme.js
        wp_enqueue_script('my_script', 'http://www.studionews24.com/wp-content/themes/network/js/menu-resp.js', array('jquery'), '1.0', true);
    }
}
add_action('init', 'my_init');

Ora stavo cercando di spostare nel footer anche il style.css, e mantenere solo alcune regole css inline nel tag head. Ho provato wp_enqueue_style ma sembra non funzionare bene per me.

Qualcuno potrebbe aiutarmi a trovare una soluzione intelligente?

0
Tutte le risposte alla domanda 1
4
43

In realtà tutti gli stili dovrebbero essere posizionati nell'header. WordPress non ha un parametro per farlo nella funzione wp_enqueue_style, perché tradizionalmente tutti gli stili venivano aggiunti nel head. Recentemente, molti siti sono passati a un sistema in cui gli stili critici "above the fold" vengono caricati nell'head, mentre gli altri stili vengono caricati nel footer.

Ecco un modo per farlo: puoi usare la funzione print_late_styles() che viene chiamata nel footer. Devi solo accodare i tuoi stili quando l'header è già stato processato.

Quindi devi trovare un hook che viene chiamato in ogni pagina e dopo l'hook wp_head. Ad esempio get_footer potrebbe essere uno.

function prefix_add_footer_styles() {
    wp_enqueue_style( 'your-style-id', get_template_directory_uri() . '/stylesheets/somestyle.css' );
};
add_action( 'get_footer', 'prefix_add_footer_styles' );
1 mag 2015 19:29:10
Commenti

Ma se voglio forzare lo stile nel footer, come potrei fare? Non c'è davvero alcun modo per farlo?

Giulio Bambini Giulio Bambini
1 mag 2015 19:33:35

print_late_styles() potrebbe essere utilizzato per quello, anche se non dovresti, esso »Stampa gli stili che sono stati accodati troppo tardi per l'head HTML.«. @GiulioBambini

Nicolai Grossherr Nicolai Grossherr
1 mag 2015 19:39:31

@Emetrop potresti cortesemente mostrarmi un esempio di codice sulla funzionalità di print_late_style?

Giulio Bambini Giulio Bambini
1 mag 2015 19:50:06

In realtà è un mito che gli stili debbano essere nell'head, gli stili che sono essenziali per il rendering iniziale della pagina dovrebbero essere nell'head. Altri stili meno critici possono essere caricati in fondo alla pagina per ottimizzare la velocità di caricamento.

NextGenThemes NextGenThemes
25 feb 2017 22:53:38