如何在CSS中嵌入PHP而不损失加载速度(在Wp中)


How to embed PHP in CSS without to lose load speed (in Wp)

我正在开发Wordpress主题,我添加了一些选项,以便使用一页选项来更改字体系列。我所做的是在header.php中添加这个链接:

<link rel="stylesheet" type="text/css" media="screen" href="<?php echo get_stylesheet_directory_uri(); ?>/custom-style.php" />

此文件包含以下代码:

<?php
require_once( dirname(__FILE__) . '../../../../wp-config.php');
require_once( dirname(__FILE__) . '/functions.php');
header('Content-type: text/css');  
header('Expires: ' . gmdate( "D, d M Y H:i:s", time() + $expires_offset ) . ' GMT');
header("Cache-Control: public, max-age=$expires_offset");
?>
body{font-family:"<?php echo get_option('szt_fonts_body', 'Open Sans'); ?>"}
h1,h2,h3,h4,h5,h6,.hdunderline,#comments,.headlinepg,.headline,.headlinesitemap,.headline404,.headlinecontact{font-family:"<?php echo get_option('szt_fonts_heading', 'Oswald'); ?>"}
#logo .headertext a{font:<?php echo get_option('szt_fsize_logo', '2em'); ?> "<?php echo get_option('szt_fonts_logo', 'Michroma'); ?>"}
#logo .headertext{margin-top:<?php echo get_option('szt_margin_logo', '3px'); ?>}

问题是这种方法降低了装载速度。使用此代码,加载速度从600毫秒增加到2.5-3秒。我的问题是:为什么?这不是很多代码,所以我不明白原因。

我想找到一个解决方案。我知道我可以在header.php中添加CSS代码作为替代方案,但我希望有一个分离代码的解决方案,CSS在一边,HTML在另一边。我该怎么办?


已解决:似乎加载了Wordpress核心两次。所以我决定不使用这个文件。我在header.php文件中添加了dinamic CSS。无论如何,我想知道是把代码作为函数放在header.php中还是放在functions.php中更好(这是所有页面中都使用的代码)。

考虑使用APC或类似的操作代码缓存。这将有助于像WP这样的CMS/框架,它必须在运行时加载所有包含的PHP(其他一些框架使用自动加载)。

在这个例子中(CSS文件只有一些基于配置的方法),需要的处理量很小,因此速度慢可能表明磁盘IO与每次加载整个WP代码(每次包含)有关。