J'ai du mal à générer des CSS "à la volée" à partir d'un shortcode contenu dans un plugin utilisant class. Voici la fonction 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>';
}
Ce que j'essaie de faire, c'est d'obtenir les valeurs id
et image_url
et de les mettre dans un fichier CSS pour créer quelque chose comme:
#intro01 <-- THE ID SHORTCODE VALUE {
background: url(../images/fly.jpg <-- THE $image_url VALUE ) 50% 0 fixed;
}
C'est un css public (front-end).
Mettre les règles CSS générées dans un fichier CSS à partir du shortcode peut être une pratique plutôt mauvaise car chaque fois que vous exécutez le shortcode, il devra ouvrir un fichier et y écrire; Je pense que ce n'est pas vraiment ce dont vous avez besoin. Dans votre cas, vous pourriez, par exemple, définir l'attribut style
sur l'élément lui-même, cela devrait suffire:
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>';
}
Vous pouvez aussi essayer la fonction wp_add_inline_style () .