У меня есть style.php
файл, который выглядит следующим образом.
<?php header('Content-Type: text/css');?>
#div{
background:<?php echo get_option('bgcolor');?>;
}
Это не работает, но когда я делаю это, это работает.
<?php header('Content-Type: text/css');?>
#div{
background: <?php echo 'blue';?>;
}
В чем будет проблема?
Это mainfile.php
<?php
function test(){
global get_option('bgcolor');?>
<input type="text" id="bgcolor" name="post_popup_settings[bgcolor]" value="<?php echo get_option('bgcolor');?> " />
<?php
}
add_action('admin_head','test');
Это на самом деле в разделе администратора.
style.php
. Если файл стиля не вызывается WordPress, функция WordPress недоступна.Ответы:
Функции WordPress доступны только в том случае, если WordPress загружен. Если вы звоните
style.php
напрямую, вы не можете использовать функцию WordPress.Один простой способ загрузить WordPress для вашей таблицы стилей, управляемой PHP, - это добавить конечную точку в WordPress: пользовательский, зарезервированный URL-адрес, куда вы загружаете файл шаблона.
Чтобы попасть туда, вам нужно:
Зарегистрируйте конечную точку
'init'
с помощьюadd_rewrite_endpoint()
. Давайте назовем это'phpstyle'
.Подключитесь
'request'
и убедитесь, что переменная конечной точки'phpstyle'
не пуста, если она установлена. Прочитайте превосходное (в основном) Полное руководство по переписыванию WordPress от Christopher Davis, чтобы понять, что здесь происходит.Подключитесь
'template_redirect'
и доставьте свой файл вместо файла шаблона по умолчаниюindex.php
.Для краткости я соединил все три простых шага в одной функции в следующем демонстрационном плагине.
Плагин PHP Style
Установите плагин, зайдите
wp-admin/options-permalink.php
один раз, чтобы обновить правила перезаписи, и добавьтеstyle.php
к своей теме.Образец
style.php
Теперь посетите
yourdomain/phpstyle/
. Выход:Но если вы идете к
yourdomain/phpstyle/blue/
выводу:Таким образом, вы можете использовать конечную точку для доставки разных таблиц стилей с одним файлом в зависимости от значения
get_query_var( 'phpstyle' )
.Предостережение
Это замедлит ваш сайт. WordPress должен загружаться два раза за каждое посещение. Не делайте этого без агрессивного кеширования.
источник
get_query_var( 'phpstyle' ) AND ! defined( 'SHORTINIT' ) AND define( 'SHORTINIT', true )
ускорить процесс ... и если тогда все необходимые функции будут доступны ...Вы можете сделать это, загрузив выходные данные через
admin-ajax.php
, но лучший подход к этому - использоватьSHORTINIT
константу WordPress, чтобы вы могли загружать только те функции, которые вам нужны, но вам нужно будет найти и загрузить,wp-load.php
чтобы сделать это:На этом этапе вам нужно будет обязательно включить любые другие
wp-includes
файлы, которые вам нужны, чтобы получить параметры вашей темы - которые будут варьироваться в зависимости от того, как вы сохраняете и, таким образом, получаете к ним доступ. (Вам, вероятно, нужно будет добавить больше в этот список, чтобы избежать фатальных ошибок - но по ходу фатальные ошибки сообщат вам, какие файлы вам нужно добавить.) Например.Затем, когда у вас есть все необходимые функции, вы можете вывести CSS с помощью этих функций ... например.
Затем вы можете поставить файл в нормальном режиме, например:
источник
../../
наwp-load.php
пути к функции , заданной будет найти его для вас , как это ... но , как я сказал , вам нужно найти и включить любые файлы вам нужно , что есть функции , которые вы используете, например.get_background_image
иtheme.php
т. д. По мере добавления в CSS вам может понадобиться больше, поэтому вам нужно будет научиться находить их, чтобы использовать этот метод эффективно и надежно.