As funções do WordPress estão disponíveis apenas se o WordPress estiver carregado. Se você ligar style.phpdiretamente, não poderá usar a função WordPress.
Uma maneira simples de carregar o WordPress para sua folha de estilo baseada em PHP é adicionar um ponto de extremidade ao WordPress: um URL reservado e personalizado onde você carrega seu arquivo de modelo.
Para chegar lá, você precisa:
Registre um terminal 'init'com add_rewrite_endpoint(). Vamos nomear 'phpstyle'.
Conecte-se 'request'e verifique se a variável do terminal 'phpstyle'não está vazia se estiver configurada. Leia o excelente Guia completo A (principalmente) de Christopher Davis para a API de reescrita do WordPress para entender o que está acontecendo aqui.
Conecte 'template_redirect'e entregue seu arquivo em vez do arquivo de modelo padrão index.php.
Para manter as coisas curtas, combinei as três etapas simples em uma função no seguinte plugin de demonstração.
Estilo PHP de plug-in
<?php # -*- coding: utf-8 -*-
/*
* Plugin Name: PHP Style
* Description: Make your theme's 'style.php' available at '/phpstyle/'.
*/
add_action( 'init', 'wpse_54583_php_style' );
add_action( 'template_redirect', 'wpse_54583_php_style' );
add_filter( 'request', 'wpse_54583_php_style' );
function wpse_54583_php_style( $vars = '' )
{
$hook = current_filter();
// load 'style.php' from the current theme.
'template_redirect' === $hook
&& get_query_var( 'phpstyle' )
&& locate_template( 'style.php', TRUE, TRUE )
&& exit;
// Add a rewrite rule.
'init' === $hook && add_rewrite_endpoint( 'phpstyle', EP_ROOT );
// Make sure the variable is not empty.
'request' === $hook
&& isset ( $vars['phpstyle'] )
&& empty ( $vars['phpstyle'] )
&& $vars['phpstyle'] = 'default';
return $vars;
}
Instale o plug-in, visite wp-admin/options-permalink.phpuma vez para atualizar as regras de reescrita e adicione um style.phpao seu tema.
Amostra style.php
<?php # -*- coding: utf-8 -*-
header('Content-Type: text/css;charset=utf-8');
print '/* WordPress ' . $GLOBALS['wp_version'] . " */\n\n";
print get_query_var( 'phpstyle' );
Agora visite yourdomain/phpstyle/. Saída:
/* WordPress 3.3.2 */
default
Mas se você for para yourdomain/phpstyle/blue/a saída é:
/* WordPress 3.3.2 */
blue
Assim, você pode usar o terminal para fornecer diferentes folhas de estilo com um arquivo, dependendo do valor de get_query_var( 'phpstyle' ).
Embargo
Isso desacelerará seu site. O WordPress deve ser carregado duas vezes para cada visita. Não faça isso sem cache agressivo.