2017-01-27 10 views
1

Я пытаюсь создать дочернюю тему из темы html5blank. Мне удалось получить мою работу с CSS для детей, используя следующее:Удалить родительскую тему вложенные файлы в тему Wordpress

<?php 
    add_action('wp_enqueue_scripts', 'my_theme_enqueue_styles'); 
    function my_theme_enqueue_styles() { 
     wp_enqueue_style('main-css', get_stylesheet_directory_uri() . '/css/main.css'); 
    } 
?> 

Но стили родителя все еще унаследованы. Это style.css и normalize.css. Мне вообще не нужны эти файлы.

Так мне сказали, что мне нужно использовать wp_dequeue_style(). для «удалить родительские файлы с помещаются в очередь wp_dequeue_style()» и добавить свой крюк с более поздним приоритетом, чем по умолчанию 10. Это третий, необязательный параметр add_action(). Что-то вроде 100.

К сожалению, я действительно борюсь с этой основной задачей, я пробовал, но я не могу заставить ее работать. Я попробовал следующее, но, очевидно, это совершенно неправильно!

<?php 
add_action('wp_enqueue_scripts', 'my_theme_enqueue_styles'); 
function my_theme_enqueue_styles() { 
    wp_enqueue_style('main-css', get_stylesheet_directory_uri() . '/css/main.css'); 
    wp_dequeue_style('parent-style-css', get_template_directory_uri() . '/style.css', 100); 
    wp_dequeue_style('parent-normalize-css', get_template_directory_uri() . '/normalize.css', 100); 
} 
?> 

Может ли кто-нибудь помочь в этом? Я уверен, что это прямолинейно, но у меня нет подсказки!

Кроме того, я предполагаю, что если мне не нужен JS из родительского элемента, так как я буду использовать его в своем дочернем элементе, то, наверное, я бы использовал методы для их размещения/удаления из очереди?

EDIT

Это больше походит на это ...

<?php 

add_action('wp_enqueue_scripts', 'my_theme_enqueue_styles', 100); 
function my_theme_enqueue_styles() { 
    wp_enqueue_style('main-css', get_stylesheet_directory_uri() . '/css/main.css'); 
    wp_dequeue_style('normalize'); 
    wp_dequeue_style('html5blank'); 
} 

add_action('wp_enqueue_scripts', 'my_theme_enqueue_scripts', 100); 
function my_theme_enqueue_scripts() { 

    wp_deregister_script('conditionizr'); 
    wp_deregister_script('modernizr'); 
    wp_deregister_script('html5blankscripts'); 

    wp_register_script('jquery', get_template_directory_uri() . '/js/jquery-1.12.0.min.js', array('jquery'), '1.12.0'); // Custom scripts 
    wp_enqueue_script('jquery'); // Enqueue it! 

    wp_register_script('responsive-nav', get_template_directory_uri() . '/js/responsive-nav.js', array('jquery'), '1.0.0'); // Custom scripts 
    wp_enqueue_script('responsive-nav'); // Enqueue it! 

    wp_register_script('uniform-js', get_template_directory_uri() . '/js/jquery.uniform.min.js', array('jquery'), '1.0.0'); // Custom scripts 
    wp_enqueue_script('uniform-js'); // Enqueue it! 

    wp_register_script('main-js', get_template_directory_uri() . '/js/main.js', array('jquery'), '1.0.0'); // Custom scripts 
    wp_enqueue_script('main-js'); // Enqueue it! 
} 

?> 
+0

Похоже, что вы передаете третий параметр в неправильную функцию. – hungerstar

+0

Да, извините, я новичок с этим материалом. Не прочь признать, что у меня нет подсказки! Я добавил еще один код под «EDIT», это лучше? Я не на машине, чтобы протестировать его, но сегодня вечером. – user1406440

ответ

1

инструкции просто говорю вам, чтобы изменить это ...

add_action('wp_enqueue_scripts', 'my_theme_enqueue_styles'); 

в это ...

add_action('wp_enqueue_scripts', 'my_theme_enqueue_styles', 100); 

Полный метод вызова ...

add_action(string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1) 

Только первые два являются обязательными, остальные имеют значения по умолчанию они будут использовать в случае, если оставить их пустыми.

Кроме того, для удаления из очереди вам требуется только имя родительского идентификатора, а не все данные файла.

wp_dequeue_style('name-of-identifier-in-parent-theme'); 

Похоже, вы положили приоритет на неправильный вызов функции.

И да, вы также можете деактивировать файлы javascript, используя этот метод.

+0

Я добавил примерный код в исходное сообщение в разделе «EDIT». Это выглядит лучше? – user1406440

+0

У меня были CSS и JS в том же 'add_action', но я не знал, лучше ли их разделить? Или следует ли отменить регистрацию/dequeue также на свои собственные действия вдали от выставленных оппонентов, так что только у них есть приоритет? – user1406440

+0

@ user1406440 Все, что не конфликтует, могут быть загружены с приоритетом по умолчанию.«Лучшим» было бы разделение предметов, которые вам нужно загрузить позже, с хорошим ясным комментарием о том, почему они отделены от остальных, так что через 6 месяцев вы (или кто-то еще) можете узнать, почему это было сделано именно так. –