Mengapa style.css tidak enqueued?

10

Saya mendapat tema yang cukup mendasar dan baru saja menemukan file style.css saya tidak dimuat ke dalam <head>. Saya sudah mencari-cari tetapi tidak bisa mencari tahu, mengapa itu tidak memuat.

Saya sudah memeriksa global $wp_stylesobjek tetapi tidak dapat menemukan apa pun:

function style_test() 
{ 
    $wp_styles = new WP_Styles();

    echo '<pre>'; 
        // $wp_styles->enqueue == completely empty
        print_r( $wp_styles->registered ); 
    echo '</pre>'; 
} 
add_action( 'wp_print_scripts', 'style_test', 0 );

Di dalam objek saya juga tidak dapat menemukan stylesheet terdaftar / enqueued saya (mereka dimuat), jadi saya kira saya melakukan sesuatu yang salah saat memeriksa ini juga. Ada ide?

Catatan:
Jika saya membuatnya secara manual, file style.css saya dimuat. Hanya pemuatan otomatis tidak berfungsi. Selanjutnya saya dapat mengakses file get_theme_data( TEMPLATEPATH.'/style.css' );tanpa masalah.

kaisar
sumber

Jawaban:

18

Lembar gaya tema biasanya tidak enqueued, biasanya dimuat menggunakan ..

<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />

Jadi tentu saja Anda tidak melihat mereka (itu) dalam array gaya ..

Tentu saja Anda dapat (jika Anda mau) menggunakan enqueue sebagai gantinya.

t31os
sumber
6
Stylesheet style.css utama - sama seperti stylesheet lainnya, dalam hal ini - harus berupa hard-coded ke dalam kepala dokumen, atau secara manual terhubung ke wp_headatau wp_print_styles. WordPress tidak secara otomatis mengaitkan style.css .
Chip Bennett
2
Saya (sampai sekarang) berpikir bahwa memuat style.css terjadi secara auomagis ... terima kasih telah menjelaskan! +1 keduanya.
kaiser
2

Cara yang disarankan untuk melakukannya adalah dengan enqueue-ing style.css di functions.php dari tema.

Tambahkan ini ke functions.php

 /**
 * Load CSS and JS the right way
 */
function myprefix_load_css_and_js() {
    wp_enqueue_style( 'style', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'myprefix_load_css_and_js' );

Anda dapat merujuk ini di buku pegangan tema WordPress di sini dan lihat contoh di sini .

Arun Basil Lal
sumber