我已经看过这里的答案,没有一个与我的情况完全相符。我有用户可以编辑的自定义CSS,它保存在选项中。我使用wp_enqueue_style
包含带有CSS内容头的PHP文件,然后从选项加载CSS。然而,为了从选项中加载,我必须包括wp加载。php。我知道这不是最好的做事方式。我究竟应该如何实现这一点呢?
插件主文件:
add_action(\'wp_print_styles\', \'wp123_load_css\');
function wp123_load_css()
{
wp_register_style(\'wp123-custom-css\', plugins_url(\'/include/wp-123-style.php\', __FILE__));
wp_enqueue_style(\'wp123-custom-css\');
}
wp-123-样式。php:
<?php
header(\'Content-type: text/css\');
require_once(\'../../../../wp-load.php\');
$options = get_option(\'wp123_options\');
?>
<?php echo $options[\'custom_css\']; ?>
输出CSS文件而不必包含wp load的正确方法是什么。php?非常感谢您的帮助和建议!
最合适的回答,由SO网友:s_ha_dum 整理而成
如果要将样式表排队,应该使用wp_enqueue_scripts
不wp_print_styles
, 但是,在“WordPress ie”和为了性能而正确做事之间,你处于一个灰色地带。
“WordPress ie”的方式是将样式表排队,但从性能的角度来看,您正在加载额外的资源,在您的情况下,您还必须启动WordPress核心的很大一部分来填充动态样式表。
我不会那样做的。如果是我我会的echo
<style
标记到head
. 这样做可以避免加载额外的资源,也可以避免两次加载WordPress。这就是WordPress核心本身对动态CSS所做的,动态CSS由主题定制API创建。
我考虑加载另一个动态样式表的唯一情况是,如果要加载大量CSS。我怀疑你会。