我正在努力从使用类的插件中的短代码“动态”生成CSS。以下是shortcode函数:
public function shortcode($atts, $content = NULL) {
$data = shortcode_atts (
array(
\'id\' => \'\',
\'img\' => \'\',
\'speed\' => \'5\',
), $atts
);
$id_tmp = $data[\'id\'];
$src = wp_get_attachment_image_src( $data[\'img\'], \'full\');
$image_url = $src[0];
return \'<section id="\'. $data[\'id\'] .\'" data-speed="\'. $data[\'speed\'] .\'" data-type="background">\' .do_shortcode($content). \'</section>\';
}
我想做的是
id
和
image_url
值并将其放入CSS文件中,以创建类似以下内容:
#intro01 <-- THE ID SHORTCODE VALUE {
background: url(../images/fly.jpg <-- THE $image_url VALUE ) 50% 0 fixed;
}
这是一个公共(前端)css。
最合适的回答,由SO网友:cybmeta 整理而成
将生成的CSS规则从短代码放入CSS文件可能是非常糟糕的做法,因为每次运行短代码时,它都必须打开一个文件并写入其中;我想这不是你真正需要的。例如,在您的情况下,可以设置style
属性,它应该足够了:
public function shortcode($atts, $content = NULL) {
$data = shortcode_atts (
array(
\'id\' => \'\',
\'img\' => \'\',
\'speed\' => \'5\',
), $atts
);
$id_tmp = $data[\'id\'];
$src = wp_get_attachment_image_src( $data[\'img\'], \'full\');
$image_url = $src[0];
$style = "style = background: url(".$image_url.") 50% 0 fixed;";
return \'<section id="\'. $data[\'id\'] .\'" data-speed="\'. $data[\'speed\'] .\'" data-type="background" \'.$style.\'>\' .do_shortcode($content). \'</section>\';
}
您也可以尝试
wp_add_inline_style() 作用