Intereting Posts
WP: добавление Javascript на конкретные страницы торговли woo Добавление класса на текущую страницу WP_LINK_PAGES Регистрация таблицы стилей внутри моего виджета WordPress Как я могу (полу) автоматизировать экспорт и импорт базы данных в другое место? Условные функции.php на странице шаблона Проблемы с созданием статического сайта с помощью WordPress Как показать один пост, отличный от остальных? Как сохранить каждую опцию в меню множественного выбора, поскольку она представляет собой собственную пару meta_key + meta_value? Где мой редактор меню Как запустить JS, PHP и т. Д. Внутри WP-сообщения? Сделать метабокс пользовательского типа сообщений полностью автоматическим и массовым / быстрым редактированием Форма экземпляра виджета Access Customizer Создание архива для терминов таксономии, а не результат WP-AJAX против WP REST API: что использовать для запросов на веб-сайт извне? Отфильтровать определенные классы из меню

Детские темы Проблемы с приоритетом CSS без использования! Important

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

Например, на моем сайте граница, которая включает в себя .wp-caption имеет тот же цвет, что и фон с использованием !important тега, но без него не будет работать.

Это связано с файлом functions.php?

Это содержимое моего файла PHP:

 add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); function theme_enqueue_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); } 

Solutions Collecting From Web of "Детские темы Проблемы с приоритетом CSS без использования! Important"

Попробуйте заложить CSS вашего дочернего объекта так:

 // Queue parent style followed by child/customized style add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles', PHP_INT_MAX); function theme_enqueue_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/styles/child-style.css', array( 'parent-style' ) ); } 

Обратите внимание на несколько вещей:

1) PHP_INT_MAX в качестве приоритета, чтобы это выполнялось последним

2) get_stylesheet_directory_uri () vs. get_template_directory_uri (), который укажет на папку шаблона дочерней темы, а не на родителей.

Я добавил туда вложенную папку, а также /styles/ потому что я всегда сохраняю свой CSS в подпапке моей темы.

3), за которым следует array( 'parent-style' ) чтобы сделать дочерний CSS родительским CSS как зависимость, что приводит к тому, что перед ним вставлена ​​родительская тема в начале и последующая CSS-тема для детей. Из-за этого все, что также появляется в дочерней теме, которая уже находится в родительской теме, перезапишет версию родительской темы.

Ответ TLDR: первый параметр для каждого wp_enqueue_style() не должен быть оставлен как «родительский стиль» и «детский стиль». Их следует переименовать в соответствии с именем родительской темы и ее дочерним элементом.

проблема

Если вы не переименуете параметры, вы получите второстепенную дочернюю тему, которая может привести к появлению двух правил в Firebug и изменению значений в неправильном, не имеющем видимого эффекта, что может обмануть вас в мысли о том, t переопределяет родительский элемент.

Ожидание

На странице Codex на Child Themes правильно сказано, что если вы ничего не делаете, дочерний CSS связан автоматически. Это так, но только это. Рабочий процесс CSS немного отличается: вы хотите переопределить, а не заменять. Это логично (это работает как другие файлы тем), но они могли иметь записку.

Решение

Переименуйте параметры. Я делаю это как ниже, чтобы получить (немного) больше контроля, обратите внимание, что вы должны заменить twentysixteen и twentysixteen-child именами вашей темы и дочерней темы:

 function theme_enqueue_scripts() { //FIRST wp_enqueue_style( 'twentysixteen-style', get_template_directory_uri() . '/style.css' ); //...custom queueing of .js and .css for Javascript plugins and such here //LAST wp_enqueue_style( 'twentysixteen-child-style', get_stylesheet_directory_uri() . '/style.css', array( 'twentysixteen-style' ) ); } add_action( 'wp_enqueue_scripts', 'theme_enqueue_scripts' ); 

(Также обратите внимание, что вы не получаете контроль над порядком ссылок некоторых (всех?) Плагинов WP в этом действии. После этого они связаны.)

Счастливый охотник за селектором;)

Вы можете использовать более специфический селектор в CSS вашей дочерней темы, чтобы он имел приоритет.

Поэтому вместо:


 .wp-caption {
      фон: # 2d2d2d! important;
 }

Использование:


 .entry .wp-caption {
      фон: # 2d2d2d;
 }

Вы также захотите, чтобы вы не указали свою таблицу стилей ваших детей в файле functions.php, если вы еще этого не сделали.

http://codex.wordpress.org/Function_Reference/wp_enqueue_style