Как добавить пользовательский файл CSS в тему?

16

Некоторые темы просят вас не редактировать файл style.css, а использовать файл custom.css. Если вы напишите код в custom.css, он перезапишет тот же стиль элемента в style.css. Я думаю, что это сделано для того, чтобы предотвратить потерю пользовательских стилей при обновлении темы, так ли это?

Как это работает? Они уже включают файл custom.css в свою тему? Но как этот файл включается в тему, чтобы она сначала искала стиль в custom.css? Благодарю.

сойка
источник
Если человек, задающий этот вопрос, немец, то почти наверняка «перезаписать» означает «переопределить». Я предполагаю, что вопрос не в том, что размещение кода в файле custom.css приведет к изменению файла style.css. Я не говорю, что это критично, я говорю, что я сбит с толку, и это мое понимание.
user34660

Ответы:

1

Я обычно добавляю этот кусок кода, если я хочу добавить другой файл CSS

<link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/css/my_custom_css.css" type="text/css" media="screen" />

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

Вай вонг
источник
2
больше не лучшая практика - developer.wordpress.org
iantsch
@iantsch почему нет? что лучше? я не мог найти ничего лучше.
Кенгуру
2
@Kangarooo см. Ответ, предоставленный Филом Джозефом: поставьте в очередь сценарии / стили, которые вы хотите включить в верхний или нижний колонтитул
iantsch
В HTTP / 1 рекомендуется упаковывать все основные стили в один свернутый файл вместо добавления другого файла CSS, который браузер должен загрузить и обработать.
Энди
в моем случае это было лучшее решение.
Богатый
27

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

Лучшая практика - использовать функцию wp_enqueue_style()в functions.php.

Пример :

wp_enqueue_style ('theme-style', get_template_directory_uri().'/css/style.css');
wp_enqueue_style ('my-style', get_template_directory_uri().'/css/mystyle.css', array('theme-style'));
Фил Иосиф
источник
1
Добавьте зависимость parent, style.css чтобы убедиться, что вы mystyle.cssзагружены после style.css!
Sumit
Я понимаю часть пути, но как насчет первой части, части «стиль темы» и «мой стиль», могу ли я что-нибудь добавить туда? А что в файле functions.php, каков общий код, чтобы это работало?
Бруно Винсент
@ BrunoVincent вы можете назвать handleвсе, что вы хотите, если это уникально. Смотрите документ
Фахми,
4

Активируйте дочернюю тему и добавьте следующий пример кода в function.php

add_action( 'wp_enqueue_scripts', 'child_enqueue_styles');

function child_enqueue_styles() {

wp_enqueue_style( 'reset-style', get_template_directory_uri() . '/css/reset.css', array());
}
Абхишек К.Р.
источник
2

Мое предложение будет использовать дочерние темы. Это очень легко реализовать, и все ваши изменения (включая стили) полностью изолированы от оригинальной темы.

папа
источник
0

Чтобы предотвратить перезапись основной темы CSS или других файлов, вы должны ВСЕГДА использовать дочернюю тему в WordPress ... в противном случае это вызовет у вас только большие головные боли и проблемы в будущем.

https://codex.wordpress.org/Child_Themes

... и с тем, как легко настроить дочернюю тему, нет причин, по которым вам не следует ее использовать.

Использование дочерней темы позволит вам затем переопределить любой из основных файлов родительской темы, просто скопировав из родительского в ваш дочерний или создав новый файл с тем же именем.

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

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

sMyles
источник
0

Если вы хотите оставить свой HTML вместе. Вы можете добавить это в свой файл CSS. Я думаю, что это лучше.

@import url("../mycustomstyle.css");

также в зависимости от вашей темы он будет работать с дочерними и родительскими темами.

- имейте в виду, что css работает последовательно (при использовании идентичного уровня идентификатора, уже использованного), так что последнее в вашем файле будет перезаписано. поэтому поместите свой импорт нестандартного стиля внизу, если вы хотите переопределить материал.

woony
источник
css не работает последовательно, он работает исходя из специфики правила; он возвращается только к последним перезаписанным предыдущим, когда у вас есть правила равной специфичности
srcspider
Вы правы, и это то, что я имею в виду. мои последовательные ссылки на перезапись. не CSS в целом.
woony
0

Лучший способ - объединить все стили, поставленные в очередь, в одну функцию, а затем вызывать их с помощью wp_enqueue_scriptsдействия . Добавьте определенную функцию в файл functions.php вашей темы где-то ниже начальной настройки.

Блок кода:

function add_theme_scripts() {
    wp_enqueue_style( 'style', get_template_directory_uri() . '/css/style.css' );
    wp_enqueue_style ( 'custom', get_template_directory_uri () . '/css/custom.css', array( 'style' ) );
}
add_action ( 'wp_enqueue_scripts', 'add_theme_scripts' );

Пожалуйста, обратите внимание :

3-й параметр - это массив зависимостей, который указывает, зависит ли эта таблица стилей от другой таблицы стилей. Итак, в приведенном выше коде custom.css зависит от style.css

|
Дополнительно Basic:
wp_enqueue_style() функция может иметь 5 параметров: вот так - wp_enqueue_style ( $ handle, $ src, $ deps, $ ver, $ media );
В реальном мире WP Coding обычно мы также добавляем файлы javascript / библиотеки jQuery внутри этой функции следующим образом:

wp_enqueue_script( 'script', get_template_directory_uri() . '/js/script.js', array ( 'jquery' ), 1.1, true);

5-й параметр true / false является необязательным (2-й, 3-й и 4-й параметры также необязательны), но очень важен, он позволяет нам помещать наши сценарии в нижний колонтитул, когда мы используем логический параметр как true.

perfectionist1
источник
0

Перейдите в Внешний вид> Редактировать CSS из вашей панели WordPress. введите описание изображения здесь

Вот экран с базовым редактором CSS. введите описание изображения здесь

Теперь вставьте свой CSS прямо в текст по умолчанию. Вы можете удалить текст по умолчанию, чтобы ваш CSS отображался только в редакторе. Затем сохраните таблицу стилей, и ваш CSS будет активен.

suthanalley
источник
-2

Используйте детскую тему. Это ваша лучшая ставка. Таким образом, если тема когда-либо обновляется, вы не будете переопределять созданные вами таблицы стилей.

https://codex.wordpress.org/Child_Themes

Иди по этому маршруту, ты поблагодаришь себя позже.

thisisbolo
источник
Это на самом деле не отвечает на вопрос. Возможно, вы захотите объяснить, как добавить таблицу стилей в дочернюю тему.
Кайзер