另一种方法是使用一个PHP文件来获取主题选项,并直接输出CSS和排队。例如:。
wp_enqueue_style(\'custom-css\',trailingslashit(get_template_directory_uri()).\'styles.php\');
起初,这似乎是一件奇怪的事情,但由于实际上应该通过WP文件系统编写新文件以获得正确的所有者/组权限,因此这是解决该问题的一种方法。
// send CSS Header
header("Content-type: text/css; charset: UTF-8");
// faster load by reducing memory with SHORTINIT
define(\'SHORTINIT\', true);
// recursively find WordPress load
function find_require($file,$folder=null) {
if ($folder === null) {$folder = dirname(__FILE__);}
$path = $folder.DIRECTORY_SEPARATOR.$file;
if (file_exists($path)) {require($path); return $folder;}
else {
$upfolder = find_require($file,dirname($folder));
if ($upfolder != \'\') {return $upfolder;}
}
}
// load WordPress core (minimal)
$wp_root_path = find_require(\'wp-load.php\');
define(\'ABSPATH\', $wp_root_path);
define(\'WPINC\', \'wp-includes\');
此时,您需要包括任何其他
wp-includes
获取主题选项所需的文件,根据保存方式的不同,主题选项可能会有所不同。(您可能需要添加更多内容,以免出现致命错误。)例如:。
include(ABSPATH.WPINC.DIRECTORY_SEPARATOR.\'version.php\');
include(ABSPATH.WPINC.DIRECTORY_SEPARATOR.\'general-template.php\');
include(ABSPATH.WPINC.DIRECTORY_SEPARATOR.\'link-template.php\');
然后只输出CSS选项。。。例如:。
echo \'body {color:\' . get_theme_mod(\'body_color\') . \';}\';
echo \'body {backgroundcolor:\' . get_theme_mod(\'body_background_color\') . \';}\';
exit;