Как вы изменяете файлы CSS через панель администратора?

Все стили стилей находятся в файле style.css.

Скажем, первая строка выглядит так:

body { background-color: #fff; } 

Теперь я создал вариант в панели администратора с именем body_bg. Тип пользователя # 000 есть, и я хочу изменить значение в style.css.

Как мне это достичь?

Самый простой способ для меня выглядит так: мне нужно переименовать style.css в .php и просто выполните:

 <?php header("Content-type: text/css"); ?> body { background-color: <?php echo get_option('body_bg');?> ; } 

А потом просто ссылку style.php в пустой файл style.css. Он отлично работает и работает, но я никогда не видел темы с файлом style.php, так как люди динамически изменяют свои таблицы стилей?

Если вы хотите, чтобы стили были динамическими, тогда вам придется испускать свой CSS-файл, как вы предлагаете. Однако, поскольку WordPress часто использует styles.css как файл определения темы, переименование styles.php может вызвать проблемы.

Возможно, лучше собрать все «динамические» определения в отдельный файл (например, dynamic-styles.php) и импортировать их из основного файла @import(url) через @import(url) ,

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

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

 // Get the option once $css_option = get_option( 'your_option' ); // Add action when there's a non-empty value if( !empty( $css_option ) ) add_action( 'wp_print_styles', 'custom_css_stuff' ); function custom_css_stuff() { // Bring the data into the scope of the callback function global $css_option; ?> <style type="text/css"> body { background-color: <?php echo $css_option; ?>; } </style> <?php } 

Это выводит css после таблицы стилей темы, которая позволит CSS переопределить все, что было установлено таблицей стилей.

Действие добавляется только тогда, когда опция не пуста, get_option также возвращает пустую строку, когда опция не существует, поэтому это охватывает как не заданные (пустое значение), так и необязательный вариант.