WordPress功能仅在加载WordPress时可用。如果您style.php
直接致电,则无法使用WordPress功能。
为PHP驱动的样式表加载WordPress的一种简单方法是将端点添加到WordPress:一个自定义的保留URL,用于在其中加载模板文件。
要到达那里,您必须:
在注册终结'init'
与add_rewrite_endpoint()
。命名吧'phpstyle'
。
挂钩'request'
并确保端点变量'phpstyle'
(如果已设置)不为空。阅读克里斯托弗·戴维斯( Christopher Davis)出色的WordPress Rewrite API的A(大多数)完整指南,以了解此处的情况。
挂钩'template_redirect'
并传送您的文件,而不是默认的模板文件index.php
。
为了简短起见,我在下面的演示插件中将所有三个简单步骤组合在一个函数中。
插件PHP样式
<?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;
}
安装插件,访问wp-admin/options-permalink.php
一次以刷新重写规则,然后style.php
在主题中添加一个。
样品 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' );
现在访问yourdomain/phpstyle/
。输出:
/* WordPress 3.3.2 */
default
但是如果转到yourdomain/phpstyle/blue/
输出是:
/* WordPress 3.3.2 */
blue
因此,您可以使用端点根据的值通过一个文件交付不同的样式表get_query_var( 'phpstyle' )
。
警告
这会使您的网站变慢。每次访问WordPress必须加载两次。没有积极的缓存就不要这样做。