Seberapa pentingkah untuk mengesampingkan stylesheet tema?

19

Saya telah menjaring jaring mencari jawaban untuk ini, tetapi untuk beberapa alasan semua dapat saya temukan adalah contoh nyata, tetapi tanpa penjelasan khusus, yang jelas mengatakan dalam kasus skrip. Dapatkah seseorang menjelaskan kepada saya mengapa ini penting / menguntungkan untuk gaya enqueue saat mengembangkan tema, daripada hanya menggunakan <link rel=stylesheet>di header.php.

Juga, bagaimana dengan stylesheet default tema, apakah itu harus enqueued juga?

byronyasgur
sumber
didorong oleh persyaratan ulasan tema. codex.wordpress.org/… meskipun secara opsional Anda BISA hanya menautkan rel = stylesheet utama di header
helgatheviking
1
Stylesheet default (yaitu: style.css di root dari direktori tema Anda) secara otomatis dimuat, jadi tidak perlu enqueued. Jika semua CSS Anda untuk tema Anda terkandung dalam stylesheet itu (atau jika Anda menggunakan aturan 'impor' di stylesheet itu untuk memuat CSS), maka tidak diperlukan lagi enqueueing. Namun, untuk fleksibilitas yang lebih besar dalam tema anak, dapat menguntungkan untuk secara enqueue memberikan tambahan CSS yang dapat dihilangkan oleh tema anak apa pun, seperti yang diilustrasikan oleh @kaiser.
Tom Auger

Jawaban:

17

Sangat penting untuk membuat enqueue stylesheet karena ini akan memungkinkan tema anak fleksibilitas dari dequeueing serta memungkinkan untuk didaftar untuk dependensi dan banyak hal lainnya. Secara umum ini memungkinkan fleksibilitas yang lebih besar, baik untuk Anda dan pengembang lain yang berinteraksi dengan kode Anda.

Penting juga untuk dicatat bahwa menggunakan stylesheet default dalam tema Anda bukanlah keharusan. Lembar style harus PRESENT, tetapi jika Anda menggunakannya tidak lebih dari untuk menamai tema Anda, atur versinya, dll, wordpress benar-benar baik-baik saja dengan itu, seperti halnya orang-orang yang menyetujui tema untuk repositori utama.

mor7ifer
sumber
17

Sebagai tambahan untuk jawaban lain oleh @ m0r7if3r:

Anda dapat menggunakan current_theme_supports()untuk hanya memuat stylesheet tema induk jika ada dukungan tema.

function add_supported_stylesheets()
{
    if ( current_theme_supports( 'parent-stylesheet' ) )
        wp_enqueue_style( 'main', get_stylesheet_directory_uri().'/style.css', array(), filemtime( get_stylesheet_directory().'/style.css' );
}

// In your parent themes bootstrap in the functions.php file
// Add the theme support:
add_theme_support( 'parent-stylesheet' );
// Then add the stylesheet:
add_action( 'after_setup_theme', 'add_supported_stylesheets', 20 );

Perhatikan, bahwa fungsi ini menambahkan filemtimepada versi-nr. untuk mencegah cache browser jika konten file diubah.

Ini akan memungkinkan pengguna Anda untuk menonaktifkan stylesheet di bootstrap tema anak dengan satu panggilan fn:

remove_theme_support( 'parent-stylesheet' );
// ...or...
add_theme_support( 'parent-stylesheet' );
kaisar
sumber
3

Alasan lain untuk enqueuing adalah karena memungkinkan plugin melakukan sesuatu dengan style. Misalnya, Better WordPress Minify akan secara otomatis dan menyatukan file CSS, dan WP-LESS akan mengkompilasi file KURANG Anda dan menyimpannya dengan cepat. Mereka berdua melakukan ini dengan menghubungkan ke antrian gaya dan memproses file-file yang berjajar di sana.

Mungkin ada alasan khusus mengapa Anda memerlukan gaya tertentu untuk dikecualikan dari hal-hal seperti ini, tetapi umumnya ada baiknya untuk membuat gaya Anda tersedia untuk fungsionalitas yang bermanfaat.

Steve Taylor
sumber