ทำไม style.css ถึงไม่ลงทะเบียน?


10

ผมได้ธีมสวยขั้นพื้นฐานและเพิ่งค้นพบของฉันstyle.css<head>ไฟล์ไม่ได้รับการโหลดลงใน ฉันค้นหาไปแล้ว แต่ไม่สามารถหาสาเหตุได้ทำไมมันไม่โหลด

ฉันตรวจสอบglobal $wp_stylesวัตถุแล้ว แต่ไม่พบสิ่งใดเลย:

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 );

ข้างในวัตถุฉันยังไม่สามารถหาสไตล์ชีทที่ลงทะเบียน / ได้รับการโหลด (พวกมันโหลด) ดังนั้นฉันคิดว่าฉันกำลังทำสิ่งผิดปกติในการตรวจสอบเรื่องนี้ด้วย ความคิดใด ๆ

หมายเหตุ:
หากฉันเข้าคิวด้วยตนเองไฟล์ style.cssของฉันจะโหลด การโหลดอัตโนมัติไม่ทำงาน ยิ่งไปกว่านั้นฉันสามารถเข้าถึงไฟล์ได้get_theme_data( TEMPLATEPATH.'/style.css' );โดยไม่มีปัญหา

คำตอบ:


18

สไตล์ชีตของชุดรูปแบบมักไม่ได้รับการจัดคิวโดยปกติจะโหลดโดยใช้ ..

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

ดังนั้นตามธรรมชาติคุณจะไม่เห็นพวกเขา (มัน) ในอาเรย์สไตล์ ..

แน่นอนคุณสามารถ (ถ้าคุณต้องการ) ใช้ enqueue แทน


6
สไตล์หลักstyle.css - เช่นเดียวกับสไตล์ชีตอื่น ๆ สำหรับเรื่องที่ - ต้องเป็นยากรหัสในหัวของเอกสารหรืออื่น ๆ ที่ตนเองติดยาเสพติดเข้ามาในหรือwp_head wp_print_stylesWordPress ไม่ได้โดยอัตโนมัติเบ็ดstyle.css
Chip Bennett

2
ฉัน (จนถึงตอนนี้) คิดว่าการโหลด style.css เกิดขึ้นโดยอัตโนมัติ ... ขอบคุณสำหรับการชี้แจง! +1 ทั้งคู่
ไกเซอร์

2

แนะนำวิธีที่จะทำคือการ enqueue ไอเอ็นจีใน style.css functions.php ของชุดรูปแบบ

เพิ่มสิ่งนี้ไปยัง 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' );

คุณสามารถดูในคู่มือธีม WordPress ที่นี่และดูตัวอย่างที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.