Làm cách nào để loại bỏ tệp CSS của chủ đề gốc?


33

Chủ đề gốc của tôi (Starkers) thêm tệp CSS mà tôi đang cố xóa (tôi muốn sử dụng @import thay vào đó để tôi có thể ghi đè các kiểu dễ dàng hơn). Starkers có các chức năng sau đây.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' );
}

Tôi đã thử các cách sau trong hàm con.php, nhưng các thẻ liên kết và tập lệnh vẫn hiển thị trong phần đầu.

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

Tôi đã kiểm tra hai lần để xem liệu chúng có được mã hóa cứng trong tiêu đề chính hay không.

Câu trả lời:


39

Tôi muốn sử dụng @import thay thế để tôi có thể ghi đè các kiểu dễ dàng hơn

Đơn giản. Đừng. Làm. Cái đó.

Bạn chỉ cần nhảy vào cùng một hook và sau đó hủy đăng ký / loại bỏ các kiểu / tập lệnh và ném vào các tùy chỉnh của bạn.

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

Lý do cho dequeue-ing và hủy đăng ký các tập lệnh rất đơn giản:

Lưu ý rằng nếu bạn muốn có thể sử dụng một trong hai tay cầm đó ( 'screen'hoặc 'site') sau khi loại bỏ chúng, bạn cũng cần phải hủy đăng ký chúng. Ví dụ: wp_deregister_style( 'screen' );wp_deregister_script( 'site' );- peterjmag


1
Điều này có thể đơn giản nhưng tài liệu WP chính thức thì thiếu codex.wordpress.org/Child_Theme . Họ không nói về dequeue và deregister cho các chủ đề trẻ em
gagarine 12/12/18

-1

Đây là cách bạn sẽ xóa biểu định kiểu của chủ đề gốc và thay thế nó bằng biểu định kiểu của chủ đề con HOẶC chỉ xóa biểu định kiểu của cha mẹ khỏi bị tải.

Chức năng của chủ đề Starker.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' );
}

Hãy nhớ tay cầm mà họ gọi là kiểu, 'màn hình'

Thay thế chủ đề gốc bằng biểu định kiểu của chủ đề con

Các chức năng của chủ đề Starker-Child.php:

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

Xóa biểu định kiểu của chủ đề phụ huynh

Các chức năng của chủ đề Starker-Child.php:

function remove_starkers_styles() {

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

}

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

Chúng tôi ưu tiên add_action () của chủ đề con là 20 (mặc định là 10) vì chúng tôi muốn nó chạy SAU chủ đề gốc đã xếp hàng. Ưu tiên càng cao, nó sẽ chạy càng muộn. 20> 10 vì vậy hành động của chủ đề con sẽ luôn chạy sau khi chủ đề gốc đã được thực thi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.