WordPress: Изменить цвет для плагина

Давным-давно я установил на WordPress плагин Starbox. По умолчанию его фон был белый и не подходил мне по расцветке, поэтому мне приходилось исправлять его файлы стилей. После каждого обновления плагина это приходилось делать заново. Есть способ не вносить данные исправления каждый раз, а создать собственный стиль, который потом можно применять. Сделать это можно через настройки WordPress:
Консоль WordPressВнешний видНастроитьДополнительные стили
В данном окошке мы вводим новые правила CSS. Для моего блога (для StarBox я использую тему Fancy) правила такие:

.abh_tab_content
{
  background: #c2d3dc !important;
}

.abh_tabs li.abh_active a
{
  background: #c2d3dc !important;
}

.abh_tabs li a
{
  background: #d2d8db !important;
}

.abh_tabs li a:hover
{
  background: #c6dce6 !important;
}

.abh_tabs li.abh_active a:hover
{
  background: #c6dce6 !important;
}
​

Как видно из кода, мне пришлось к каждому правилу добавить свойство !important, т.к. это была единственная возможность переопределить свойство, используемое автором плагина.

На данный момент в WordPress для инструмента «Дополнительные стили» присутствует какой-то баг — при копировании кода из внешнего редактора что-то происходит с символом переноса строки. Могу предположить, что WordPress некорректно фильтрует эти символы, в итоге, в результате inline-вставки, получается пустой код!

 

Я не нашёл решения/фикса, поэтому чтобы данные правила заработали, мне пришлось вручную удалять символы окончания строки, а потом их заново вставлять! Поскольку это нужно сделать только один раз, я не стал дальше разбираться.

Использование хуков

Поскольку, после каждого обновления нужно было заново перезаписывать файл стилей, я решил создать отдельный файл со стилями для плагина:

/wp-content/themes/twentytwelve-child/starbox-custom.css

/* Custom styles */
.abh_box.abh_box_down.abh_box_fancy>.abh_tab_content {
    background: #c2d3dc !important;
}

.abh_box.abh_box_down.abh_box_fancy>.abh_tabs li.abh_active a {
    background: #c2d3dc !important;
}

.abh_box.abh_box_down.abh_box_fancy>.abh_tabs li a {
    background: #d2d8db !important;
}

.abh_box.abh_box_down.abh_box_fancy>.abh_tabs li a:hover {
    background: #c6dce6 !important;
}

.abh_box.abh_box_down.abh_box_fancy>.abh_tabs li.abh_active a:hover {
    background: #c6dce6 !important;
}

Теперь нужно было создать хук для подключения этого файла стилей. Для этого я, вместо правки functions.php, использовал плагин code-snippets. Там я добавил сниппет:

function add_custom_starbox_styles() {
    wp_enqueue_style(
        'my-starbox-override',
        get_stylesheet_directory_uri() . '/starbox-custom.css',
        array(),
        filemtime(get_stylesheet_directory() . '/starbox-custom.css') // Auto version update
    );
}
add_action('wp_enqueue_scripts', 'add_custom_starbox_styles', 100); // High priotity, to add style last

Примечание

Конкретно для плагина Starbox можно не использовать хуки, а сразу внести строчки в style.css дочерней темы.
Т.к. хуки для данного плагина не работают даже с приоритетом 100, я использовал расширенный путь к классу, так что этого будет достаточно, чтобы наше правило не замещалось правилами css плагина.



Подписаться
Уведомление о
guest
0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments