ฉันจะถอนออกจากไฟล์ CSS ของธีมหลักได้อย่างไร


33

ธีมหลักของฉัน (Starkers) เพิ่มไฟล์ CSS ที่ฉันพยายามลบ (ฉันต้องการใช้ @import แทนเพื่อให้ฉันสามารถแทนที่สไตล์ได้ง่ายขึ้น) Starkers มีสิ่งต่อไปนี้ใน function.php:

add_action( 'wp_enqueue_scripts', 'script_enqueuer' );

function script_enqueuer() {
    wp_register_script( 'site', get_template_directory_uri().'/js/site.js', array( 'jquery' ) );
    wp_enqueue_script( 'site' );

    wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
    wp_enqueue_style( 'screen' );
}

ฉันได้ลองทำสิ่งต่อไปนี้ในฟังก์ชั่นสำหรับเด็กแล้ว แต่ลิงก์และแท็กสคริปต์ยังคงปรากฏในส่วนหัว

add_action('init', 'removeScripts');
function removeScripts() {
    wp_dequeue_style('screen');
    wp_deregister_script('site');
}

ฉันได้ตรวจสอบสองครั้งเพื่อดูว่าพวกเขาเข้ารหัสยากในส่วนหัวหลักและพวกเขาไม่ได้

คำตอบ:


39

ฉันต้องการใช้ @import แทนเพื่อให้ฉันสามารถแทนที่สไตล์ได้ง่ายขึ้น

ง่ายดาย อย่า ทำ. ที่.

คุณเพียงแค่กระโดดลงไปในเบ็ดเดียวกันจากนั้นยกเลิกการลงทะเบียน / ถอนพิษสไตล์ / สคริปต์แล้วโยนลงไปในแบบที่คุณกำหนดเอง

function PREFIX_remove_scripts() {
    wp_dequeue_style( 'screen' );
    wp_deregister_style( 'screen' );

    wp_dequeue_script( 'site' );
    wp_deregister_script( 'site' );

    // Now register your styles and scripts here
}
add_action( 'wp_enqueue_scripts', 'PREFIX_remove_scripts', 20 );

เหตุผลในการถอนออกจากตำแหน่งและการลงทะเบียนสคริปต์นั้นง่าย:

โปรดทราบว่าหากคุณต้องการใช้จุดจับอย่างใดอย่างหนึ่ง ( 'screen'หรือ'site') หลังจากที่แยกออกจากกันคุณจะต้องยกเลิกการลงทะเบียนด้วย ตัวอย่างเช่น: wp_deregister_style( 'screen' );และwp_deregister_script( 'site' );- peterjmag


1
มันอาจจะง่าย แต่ doc WP อย่างเป็นทางการจะขาดแล้วcodex.wordpress.org/Child_Themes พวกเขาไม่ได้พูดเกี่ยวกับ dequeue และลงทะเบียนสำหรับชุดรูปแบบของเด็ก
กาการีน

-1

นี่คือวิธีที่คุณจะลบสไตล์ชีทของธีมพาเรนต์และแทนที่ด้วยสไตล์ชีทของธีมลูกหรือเพียงแค่ลบสไตล์ชีทของผู้ปกครองออกจากการโหลด

ฟังก์ชั่นของ Starker theme.php:

add_action( 'wp_enqueue_scripts', 'script_enqueuer' );

function script_enqueuer() {
    //...
    wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
    wp_enqueue_style( 'screen' );
}

จำหมายเลขอ้างอิงที่เรียกว่าสไตล์'หน้าจอ'

การแทนที่ธีมผู้ปกครองด้วยสไตล์ชีทของเด็ก

ฟังก์ชั่นของธีม Starker-Child

function custom_starkers_styles() {

    //Remove desired parent styles
    wp_dequeue_style( 'screen');

    //Replace with custom child styles
    wp_register_style( 'screen-child',​ trailingslashit( get_template_directory_uri() ). 'screen.css' );
    wp_enqueue_style( 'screen-child​'​);
}

add_action( 'wp_enqueue_scripts','custom_starkers_styles', 20 );

ลบสไตล์ชีทของธีมหลัก

ฟังก์ชั่นของธีม Starker-Child

function remove_starkers_styles() {

    //Remove desired parent styles
    wp_dequeue_style( 'screen');

}

add_action( 'wp_enqueue_scripts','remove_starkers_styles', 20 );

เราให้ความสำคัญกับadd_action ()ชุดรูปแบบของเด็ก20 (ค่าเริ่มต้นคือ 10) เพราะเราต้องการให้มันรันหลังจากชุดรูปแบบหลักได้เข้าคิว ลำดับความสำคัญที่สูงกว่าก็จะทำงานในภายหลัง 20> 10 ดังนั้นการกระทำของชุดรูปแบบจะทำงานตลอดเวลาหลังจากที่ชุดรูปแบบหลักได้ดำเนินการแล้ว

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