As funções do WordPress estão disponíveis apenas se o WordPress estiver carregado. Se você ligar style.php
diretamente, 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.php
uma vez para atualizar as regras de reescrita e adicione um style.php
ao 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.