我目前正在尝试制作一个可定制的Bootstrap 然而,我个人WordPress网站的主题遇到了一些问题。
可以通过修改SCSS变量来定制引导,我正试图通过利用Leafo\'s scssphp 在使用主题定制器期间动态重新编译引导,然后使用Minify 缩小规模。我目前的代码如下:
// /wp-content/themes/bootstrap/functions.php
function bootstrap_generate_css() {
require_once(__DIR__ . \'/vendor/autoload.php\');
$compiler = new Leafo\\ScssPhp\\Compiler();
$bootstrap_scss = file_get_contents(__DIR__ . \'/vendor/twbs/bootstrap/scss/bootstrap.scss\');
$compiler->setVariables(array(
\'primary\' => get_theme_mod(\'bootstrap_colors_primary\', \'#007bff\')
));
$compiler->setImportPaths(__DIR__ . \'/vendor/twbs/bootstrap/scss/\');
$css = $compiler->compile($bootstrap_scss);
$minifier = new MatthiasMullie\\Minify\\CSS($css);
$mincss = $minifier->minify();
file_put_contents(__DIR__ . \'/bootstrap.css\', $mincss);
}
当设置更改时,似乎也没有一种“正确”的方法来调用函数,所以我通过使用
sanitizer_callback
:
function bootstrap_sanitize_color($value) {
bootstrap_generate_css();
return($value);
}
这使得我可以使用主题定制器自定义颜色,但是,这些更改不会显示在预览框中,只有在发布主题更改,然后手动重新执行
bootstrap_generate_css()
作用
因为bootstrap.css
, 最好不要将其包括在<head>
, 此外,最好不要为每个前端页面视图动态生成,因为为我编译需要1.8秒。我不介意在主题定制器中进行更改时出现这种延迟。
在WordPress中存储已编译CSS的“正确”方法是什么,以及在主题定制器预览中显示更改?