изменить шаблон Wordpress CSS на основе WP_Customize - PullRequest
0 голосов
/ 29 марта 2020

Я делаю шаблон Wordpress и хочу, чтобы во встроенном Wordpress Customizer были опции для таких вещей, как цвет акцента, пользовательский шрифт и т. Д. c. затем он будет использован по всему шаблону. Тем не менее, это означает, что я не могу просто кодировать stati c CSS и должен как-то передавать переменную. Как бы я go об этом?

1 Ответ

0 голосов
/ 01 апреля 2020

Нашел ответ по адресу https://www.cssigniter.com/how-to-create-a-custom-color-scheme-for-your-wordpress-theme-using-the-customizer/.

Вот наиболее актуальный код:

function theme_enqueue_styles() {
  wp_enqueue_style( 'theme-styles', get_stylesheet_uri() ); // This is where you enqueue your theme's main stylesheet
  $custom_css = theme_get_customizer_css();
  wp_add_inline_style( 'theme-styles', $custom_css );
}

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );

theme_get_customizer_css() вот пользовательская функция, которая возвращает строку например, CSS, который напрямую переписывает любой код в основной таблице стилей, относящийся к цветам. Поскольку он генерируется в PHP, get_theme_mod() может использоваться для проверки / вставки любых настроек настройщика. Как только это CSS сгенерировано, wp_add_inline_style() добавляет его в основную таблицу стилей; если все закодировано должным образом, каскадная природа CSS будет иметь недавно добавленный код переопределять предыдущий код без необходимости !important или чего-либо в этом роде.

Мне остается задаться вопросом, если вместо При переопределении встроенные вставки могут (или должны) быть единственным объявлением CSS, которое может быть изменено настройщиком, т. е. в theme_get_customizer_css(), если не заданы параметры настройки, возвращать код по умолчанию, а не код по умолчанию, находящийся в электронная таблица для начала. Это позволило бы избежать появления множества дубликатов CSS, полагаясь на работу каскадных иерархий, но таблица стилей также была бы неполной сама по себе, поэтому, может быть, есть причина этого не делать? Буду рад, если у кого-то есть мысли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...