我读了很多关于添加动态内联样式表的文章。但这个让我抓狂。我有一个简单的dev设置。这是我的全球风格:
function bootstrap_scripts_styles() {
wp_enqueue_style( \'custom-style\', get_stylesheet_directory_uri().\'/style.css\', array(), \'2016-07-18\' );
}
add_action( \'wp_enqueue_scripts\', \'bootstrap_scripts_styles\' );
因为我需要从single触发自定义样式。php,我在这里添加了一些示例代码:
$custom_css = ".intro { background: red; }";
wp_add_inline_style( \'custom-style\', $custom_css );
使用这个,什么都不会发生。我在前端代码中没有看到任何内联样式。但是,当我调试WP\\u Styles()并查找可以看到的“自定义样式”时,会附加样式:
[custom-style] => _WP_Dependency Object
(
[handle] => custom-style
[src] => http://localhost/westerland/wp-content/themes/westerland/style.css
[deps] => Array
(
)
[ver] => 2013-07-18
[args] => all
[extra] => Array
(
[after] => Array
(
[0] => .intro { background: red; }
)
)
)
所以我想知道为什么它没有被打印出来?!我找到了打印它的方法,但后来,它被打印了出来
<body>
而是在
<link>
全局样式标记:
$custom_css = ".intro { background: red; }";
wp_add_inline_style( \'custom-style\', $custom_css );
WP_Styles()->print_inline_style("custom-style");
所以这感觉有点“黑”,因为我希望它尽可能干净地出现在
<head>
标签这是某种bug吗?我正在使用最新的WP。
最合适的回答,由SO网友:Svartbaard 整理而成
检查以下各项是否适用。如果您希望在单个自定义post类型模板上实现这一点,只需将is\\u single()改为is\\u single(\'custom-post-type\')。希望这有帮助。
function bootstrap_scripts_styles() {
wp_enqueue_style(\'custom-style\',get_template_directory_uri() . \'/bootstrap.css\');
$custom_css = ".intro { background: red; }";
wp_add_inline_style( \'custom-style\', $custom_css );
}
function enqueue_inline_style( $query ) {
if ( $query->is_single()) {
add_action( \'wp_enqueue_scripts\', \'bootstrap_scripts_styles\' );
}
}
add_action( \'pre_get_posts\', \'enqueue_inline_style\' );
编辑:显然,只需将主样式表单独排队即可。