WordPress : wp_enqueue_style et rel autres que la feuille de style ?

Publié par Jean-Michel le

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.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *