Intereting Posts
Как проверить, правильно ли реализованы ники AJAX? Предельная контактная форма 7 крючок для конкретной формы Доступ для добавления подстраниц, но не для страниц Использование URL-адреса собственного хостинга с пользовательскими полями Использование тэга% postname% с пользовательским Permastruct создает 400 ошибок с неправильным запросом с сервера Customizer Пользовательский CSS отображается на странице Как отобразить wp_list_categories на div вместо li? From whence% E2% 80% 8E в конце сообщения link Query Custom Post Тип сообщения по ключевому слову / url slug Функция, которая получает значение полей ACF перед сохранением Как избавиться от сообщения об ошибке пользовательского метаболизма на панели управления при перемещении страницы редактирования? Пользователь мета и автор мета Пробовали по-разному, но боковая панель не работает? Shortcode: как добавить персонализированные сообщения? Создайте таблицу с плагином плагина wordpress

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