Как правильно переопределить CSS плагина с помощью дочерней темы?

28 мая 2013 г., 20:14:09
Просмотры: 20.3K
Голосов: 8

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

Я хочу переопределить CSS для некоторых плагинов на моем WordPress сайте, и эта отличная статья была хорошим шагом в правильном направлении. Моя единственная проблема в том, что я хотел бы сделать все возможное, чтобы избежать переопределения файла header.php в родительской теме для достижения этой цели.

Есть ли другой замечательный способ сделать это? Спасибо за помощь!

Обновление:

Как было отмечено в комментарии другого пользователя, это действительно зависит от того, как плагин реализует свои стили. Если отвлечься от этого, предположим, что плагины предоставляют возможность реализации стилей в файле style.css дочерней темы или, в моем случае, в отдельной папке styles, связанной с этим файлом style.css.

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

5
Комментарии

это полностью зависит от того, как конкретные плагины добавляют свои стили.

Milo Milo
28 мая 2013 г. 20:19:25

Я обновил свой пост, учитывая ваш комментарий. Спасибо!

Jordan Thornquest Jordan Thornquest
28 мая 2013 г. 20:27:47

Проголосовал за закрытие как неконструктивный. Пожалуйста, отредактируйте ваш вопрос, указав конкретные плагины, и включите конкретный код реализации CSS для этих плагинов.

Chip Bennett Chip Bennett
28 мая 2013 г. 23:00:48

Я бы с радостью, но, к сожалению, это довольно общий вопрос. Моя цель — инкапсулировать все таблицы стилей, которые добавляют пользовательские правки к стилям любого плагина, в единую папку в моей дочерней теме. Это позволяет поддерживать действительно чистый код и очень эффективно. Однако я добавлю конкретный код!

Jordan Thornquest Jordan Thornquest
29 мая 2013 г. 19:58:21

Я только что нашел этот плагин Simple Custom CSS. Он обрабатывает всё, что обсуждалось для подключения зависимых CSS. Прост в установке и использовании.

user41251 user41251
14 сент. 2014 г. 22:25:43
Все ответы на вопрос 1
5
17

Если плагины правильно добавляют свои стили через wp_enqueue_style, вам достаточно их убрать с помощью wp_dequeue_style:

function wpa_dequeue_style() {
    wp_dequeue_style( 'plugin-style-handle' );
}
add_action( 'wp_enqueue_scripts', 'wpa_dequeue_style', 100 );

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

РЕДАКТИРОВАНИЕ — еще один вариант, который не предполагает полное удаление стилей, это подключение собственных стилей с зависимостью от стилей плагина:

wp_enqueue_style(
    'my-styles',
    get_template_directory_uri() . '/mystyles.css',
    array('plugin-style-handle')
);
28 мая 2013 г. 20:32:38
Комментарии

Это, безусловно, шаг в правильном направлении. Однако, мои переопределения - это правки, поэтому компромисс в виде копирования всей таблицы стилей и её редактирования выглядит немного контрпродуктивным. Как вы сказали, это также полностью зависит от того, как добавляется CSS.

Jordan Thornquest Jordan Thornquest
28 мая 2013 г. 20:39:20

см. правку выше.

Milo Milo
28 мая 2013 г. 20:44:13

Попробую эту правку. Выглядит как отличная идея!

Jordan Thornquest Jordan Thornquest
29 мая 2013 г. 19:58:58

Вау, мне не хватает плюсов, чтобы выразить свою благодарность. Это сработало!

Jordan Thornquest Jordan Thornquest
29 мая 2013 г. 22:20:51

Это старый ответ, но помог мне в 2020 году. Спасибо!

Kinburn101 Kinburn101
10 янв. 2020 г. 06:46:40