Las funciones de WordPress están disponibles solo si WordPress está cargado. Si llama style.php
directamente, no puede usar una función de WordPress.
Una forma sencilla de cargar WordPress para su hoja de estilo controlada por PHP es agregar un punto final a WordPress: una URL personalizada y reservada donde carga su archivo de plantilla.
Para llegar hay que:
Registre un punto final 'init'
con add_rewrite_endpoint()
. Vamos a nombrarlo 'phpstyle'
.
Conéctese 'request'
y asegúrese de que la variable de punto final 'phpstyle'
no esté vacía si está configurada. Lea la excelente Guía completa de Christopher Davis (principalmente) de la API de reescritura de WordPress para comprender lo que está sucediendo aquí.
Conéctese 'template_redirect'
y entregue su archivo en lugar del archivo de plantilla predeterminado index.php
.
Para mantener las cosas cortas, combiné los tres pasos simples en una función en el siguiente complemento de demostración.
Plugin PHP Style
<?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 el complemento, visite wp-admin/options-permalink.php
una vez para actualizar las reglas de reescritura y agregue un style.php
a su tema.
Muestra 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' );
Ahora visita yourdomain/phpstyle/
. Salida:
/* WordPress 3.3.2 */
default
Pero si vas a yourdomain/phpstyle/blue/
la salida es:
/* WordPress 3.3.2 */
blue
Por lo tanto, puede usar el punto final para entregar diferentes hojas de estilo con un archivo dependiendo del valor de get_query_var( 'phpstyle' )
.
Advertencia
Esto ralentizará su sitio. WordPress tiene que cargarse dos veces por cada visita. No lo hagas sin un almacenamiento en caché agresivo.