WordPress : wp_enqueue_style et rel autres que la feuille de style ?
Je crée (ou mieux j’essaye) de créer mon premier thème WordPress avec Less.
Ce que je fais est d’utiliser un script comme ça dans mon functions.php
wp_register_style('screen_css', get_bloginfo('template_url') . '/css/screen.less', array(), false, 'screen');
wp_enqueue_style('screen_css');
et le résultat est que :
<link rel='stylesheet' id='stigma_screen-css' href='http://www.stigmahost.dch/wp-content/themes/stigmahost/css/screen.less?ver=1.0' type='text/css' media='screen' />
La question est, puis-je changer d’une manière ou d’une autre le rel= »stylesheet » lorsque j’utilise la fonction wp_register_style() ?
Solution n°1 trouvée
Je sais que c’est un vieux q, mais cela m’a aidé à comprendre cela. empruntant à la réponse de brandwaffle voici la fonction complète que j’ai utilisée:
function childtheme_scripts() {
wp_enqueue_style('less',get_stylesheet_directory_uri() .'/style.less');
add_filter('style_loader_tag', 'my_style_loader_tag_function');
wp_enqueue_script('less',get_stylesheet_directory_uri() .'/jscripts/less-1.3.0.min.js', false,'1.3.0');
}
add_action('wp_enqueue_scripts','childtheme_scripts', 1);
function my_style_loader_tag_function($tag){
//do stuff here to find and replace the rel attribute
return preg_replace("/='stylesheet' id='less-css'/", "='stylesheet/less' id='less-css'", $tag);
}
Solution n°2 trouvée
Bien qu’aucune fonction ne vous permette de transmettre cette valeur, vous avez accès à la balise avant qu’elle ne soit rendue avec le filtre style_loader_tag. Si vous faites quelque chose comme ça…
add_filter('style_loader_tag', 'my_style_loader_tag_function');
function my_style_loader_tag_function($tag){
//do stuff here to find and replace the rel attribute
return $tag;
}
… vous devriez pouvoir remplacer l’attribut rel par ce que vous voulez. Gardez à l’esprit que ce filtre transmettra toute la balise en tant que html, vous devrez donc faire un preg_replace() ou quelque chose de similaire pour remplacer la valeur par ce que vous voulez. De plus, ce filtre s’exécutera chaque fois que vous mettrez une feuille de style en file d’attente, alors assurez-vous de tester que vous avez la bonne (avec un preg_match() ou quelque chose) avant de modifier l’attribut rel.
0 commentaire