Jak usunąć kolejkę pliku CSS motywu nadrzędnego?

33

Motyw nadrzędny (Starkers) dodaje plik CSS, który próbuję usunąć (chcę zamiast tego użyć @import, aby łatwiej zastąpić style). Starkers ma następujące funkcje: 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' );
}

Próbowałem następujących w podrzędnym functions.php, ale tagi link i skrypt nadal pojawiają się w sekcji head.

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

Dokładnie sprawdziłem, czy są one zakodowane na stałe w nagłówku nadrzędnym, a nie są.

jmotes
źródło

Odpowiedzi:

39

Chcę zamiast tego użyć @import, aby łatwiej zastąpić style

Po prostu. Nie rób tego. Robić. Że.

Po prostu wskakujesz do tego samego haka, a następnie wyrejestrowujesz / usuwasz kolejność stylów / skryptów i dodajesz własne.

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

Powód usuwania skryptów i wyrejestrowywania skryptów jest prosty:

Pamiętaj, że jeśli chcesz móc użyć jednego z tych uchwytów ( 'screen'lub 'site') po ich usunięciu z kolejki, musisz również wyrejestrować je. Na przykład: wp_deregister_style( 'screen' );i wp_deregister_script( 'site' );- peterjmag

kajzer
źródło
1
Być może jest to proste, ale brakuje oficjalnego dokumentu WP, a następnie codex.wordpress.org/Child_Themes . Nie mówią o odszyfrowywaniu i wyrejestrowywaniu tematów dziecięcych
gagarine
-1

Oto, w jaki sposób albo usuniesz arkusz stylów motywu nadrzędnego i zastąpisz go arkuszem motywu podrzędnego, albo po prostu usuniesz arkusz stylów nadrzędnych z jakiegokolwiek ładowania.

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

Zapamiętaj uchwyt, który nazywają stylem, „ekranem”

Zamiana motywu nadrzędnego na arkusz stylów motywu podrzędnego

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

Usuń arkusz stylów motywu nadrzędnego

Funkcje motywu Starker-Child. Php:

function remove_starkers_styles() {

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

}

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

Dajemy dodatkowej aktywności motywu potomnego () priorytet 20 (domyślnie jest to 10), ponieważ chcemy, aby działał PO, gdy motyw nadrzędny ustawi go w kolejce. Im wyższy priorytet, tym później będzie działać. 20> 10, więc działanie motywu podrzędnego będzie zawsze uruchamiane po wykonaniu motywu nadrzędnego.

CHergott
źródło