如何从插件中的短码生成CSS

时间:2013-09-09 作者:Daniel

我正在努力从使用类的插件中的短代码“动态”生成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>\';
    }
我想做的是idimage_url 值并将其放入CSS文件中,以创建类似以下内容:

#intro01 <-- THE ID SHORTCODE VALUE {    
    background: url(../images/fly.jpg <-- THE $image_url VALUE ) 50% 0 fixed;
}
这是一个公共(前端)css。

1 个回复
最合适的回答,由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() 作用

结束

相关推荐

这种CSS填充是有效的,但这是一种好做法吗?

我正在尝试在我的插件中包含动态css,我一直在搜索任何地方,但没有找到任何与我所做类似的情况。我使用的方法是,在关闭php标记后,将css文件直接添加到插件php文件的末尾?> 无需添加任何其他内容,如呼叫wp head等。下面是我直接放入插件文件末尾的代码示例:<style type=\"text/css\"> .innertrow { background-color: <?php get_options(\'css_value\');?>}&#x