Intereting Posts
WordPress AJAX Load Больше функции дублирования сообщения Где подходящее место для хранения пользовательских изображений? Изменить таксономический термин для пользовательского типа сообщения на часовом хроне Как массировать удаление изображений из медиабиблиотеки Как добавить элемент в меню администратора WP? Неожиданно запрещена ошибка 403 на некоторых страницах Отменить настройку цвета в Настройке тем cookie jQuery не работает должным образом в wordpress Как выполнить задачу только один раз для зарегистрированных пользователей Как заставить SSL для всех запросов? Массивные теги Удаление с помощью MySQL Как работают почтовые идентификаторы в WordPress? Запрос нескольких категорий в цикле WP, если один из идентификаторов категорий динамически получен Перенаправить старый домен и сообщения на домашнюю страницу нового домена Почему я не могу модифицировать jetpack default blank.jpg на og: image?

Детские темы Проблемы с приоритетом 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