Bagaimana cara membuat file CSS tema orang tua?


33

Tema induk saya (Starkers) menambahkan file CSS yang saya coba hapus (saya ingin menggunakan @import sebagai gantinya agar saya dapat mengganti gaya dengan lebih mudah). Starkers memiliki yang berikut ini di functions.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' );
}

Saya sudah mencoba yang berikut di child functions.php, tetapi tautan dan tag skrip masih muncul di bagian kepala.

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

Saya telah memeriksa dua kali untuk melihat apakah mereka dikodekan dalam header induk dan tidak.

Jawaban:


39

Saya ingin menggunakan @import sebagai gantinya agar saya dapat mengganti gaya dengan lebih mudah

Secara sederhana. Jangan. Melakukan. Bahwa.

Anda cukup melompat ke pengait yang sama dan kemudian deregister / dequeue gaya / skrip dan melemparkan yang kustom Anda.

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

Alasan untuk dequeue-ing dan deregistrasi skrip sederhana:

Perhatikan bahwa jika Anda ingin dapat menggunakan salah satu dari pegangan itu ( 'screen'atau 'site') setelah melepaskannya, Anda harus membatalkan pendaftaran juga. Misalnya: wp_deregister_style( 'screen' );dan wp_deregister_script( 'site' );- peterjmag


1
Mungkin sederhana tetapi dokumen resmi WP kurang dari codex.wordpress.org/Child_Themes . Mereka tidak berbicara tentang dequeue dan deregister untuk tema anak
gagarine

-1

Inilah cara Anda menghapus stylesheet tema orang tua dan menggantinya dengan stylesheet tema anak ATAU hanya menghapus stylesheet orang tua agar tidak pernah dimuat.

Functions.php tema Starker:

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

Ingat pegangan yang mereka sebut gaya, 'layar'

Mengganti tema orang tua dengan stylesheet tema anak

Fungsi Starker-Child theme.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 );

Hapus stylesheet tema induk

Fungsi Starker-Child theme.php:

function remove_starkers_styles() {

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

}

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

Kami memberikan add_action () tema anak () prioritas 20 (default adalah 10) karena kami ingin itu berjalan SETELAH tema induk telah mengantri itu. Semakin tinggi prioritas, nanti akan berjalan. 20> 10 sehingga aksi tema anak akan selalu berjalan setelah tema induk sudah dijalankan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.