Доступ к глобальной переменной в «CSS» (style.php)

Я делаю CSS-файл style.php, поэтому я могу использовать некоторые динамические переменные в CSS в рамках установки WordPress:

<?php header("Content-type: text/css"); ?> 

и так далее.

Как получить доступ к глобальной переменной из файла style.php или передать ей переменную?

Код, который я пытаюсь работать в CSS, похож на

 $maincolor = $cap->br_main_color; 

Также:

  • Игнорируйте проблему кэширования. Это всего лишь личный проект.
  • Передача переменной в ссылке на таблицу стилей слишком сложна для этого (на мой взгляд).

EDIT: Как немного больше объяснений: то, что я делаю, генерирует целую тему, основанную на нескольких цветах, и вычисляет оттенки для эффектов зависания и т. Д. Примерно 50% стилей имеют в себе некоторый PHP. Все работает отлично, если я вручную вводить цвета в style.php, но я пытаюсь сделать его еще проще для менее искусных людей и использовать подборщик цветов.

Для доступа к функциям wordpress вам необходимо включить следующие строки поверх вашего файла style.php.

 define('WP_USE_THEMES', false); require('./wp-blog-header.php'); 

Первая строка сообщает wordpress не запускать связанные с темой процессы, а вторая строка запускает механизм wordpress. После этого вы получите доступ к функциям wordpress и глобальным переменным.

Вот альтернативное решение для встраивания php в таблицу стилей WordPress .css (полезность, на которую я не уверен), которая не требует манипуляции с ядром WordPress.

Просто создайте встроенный CSS-файл php в директории темы, содержащей обычный код:


embedded_style.php

 /* define document as css*/ <?php header("Content-type: text/css"); ?> /* Example php variable declaration and function call */ <?php $body_color = get_color(); ?> /* Begin php embedded css code below here */ body { background: none; color: <?php echo $body_color ?>; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 10pt } 

Затем импортируйте этот динамический файл в свои темы style.css, чтобы вам не пришлось изменять ядро ​​Wordpress.


style.css

 /* Theme Name: Mytheme Version: 1.0 Description: This theme has php embedded css Author: You */ @import url(embedded_style.php); /* Normal CSS below as required */ 

мои 2 цента

Генезис этого фрагмента был попыткой разрешить различные имена каталогов при импорте css из родительской темы в мой ребенок. Мне не понравилась идея изменения основных файлов wordpress, однако, поскольку большинство функций / перехватчиков не определены в runtime для style.css, чтобы прервать вызов, необходимо было найти альтернативный метод. В конце концов, я не использовал это по тем же причинам, что я не мог прервать обращение к файлам (слишком рано использовать удобные константы WordPress и т. Д.), Однако, надеюсь, это пригодится кому-то другому.