Доступ к глобальной переменной в "CSS" (style.php) - PullRequest
6 голосов
/ 26 сентября 2010

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

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

и т. Д.

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

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

$maincolor = $cap->br_main_color;

Также:

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

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

Ответы [ 2 ]

4 голосов
/ 07 апреля 2011

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

3 голосов
/ 26 сентября 2010

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

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

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

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