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