Як видалити CSS-файл батьківської теми?


33

Моя батьківська тема (Starkers) додає файл CSS, який я намагаюся видалити (натомість я хочу використовувати @import, щоб легше перекрити стилі). У своїх функціях Starkers є наступне:

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

Я намагався наступного в дочірнім function.php, але теги посилань та скриптів все ще відображаються в головному розділі.

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
Це, можливо, просто, але офіційного документа WP не вистачає тоді codex.wordpress.org/Child_Themes . Вони не говорять про декеу та скасування реєстрації на дитячі теми
гагарин

-1

Ось як ви можете видалити таблицю стилів батьківської теми та замінити її дочірньою таблицею стилів або АБО просто видалити батьківський таблицю стилів з будь-якого завантаження.

Функції теми 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' );
}

Запам'ятайте ручку, яку вони називають стиль, "екран"

Заміна батьківських тем на таблицю стилів дочірньої теми

Функції теми 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 );

Видаліть таблицю стилів батьківської теми

Функції теми Starker-Child.php:

function remove_starkers_styles() {

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

}

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

Ми надаємо доданню дочірньої теми () пріоритет 20 (за замовчуванням - 10), тому що ми хочемо, щоб вона запускалася ПІСЛЯ батьківської теми вона вставила її в чергу. Чим вищий пріоритет, тим пізніше він буде виконуватися. 20> 10, тому дія дочірньої теми завжди буде виконуватись після того, як батьківська тема вже виконана.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.