2011-11-10 5 views
7

Creo (o meglio cerco) di creare il mio primo tema WordPress con Meno.wp_enqueue_style e rel diverso dal foglio di stile?

Quello che faccio è quello di utilizzare uno script del genere nella mia functions.php

wp_register_style('screen_css', get_bloginfo('template_url') . '/css/screen.less', array(), false, 'screen'); 
wp_enqueue_style('screen_css'); 

e il risultato è che:

<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 domanda è: posso cambiare in qualche modo il rel = "stylesheet" quando uso la funzione wp_register_style()?

+0

Nessuno dei wp_register_style funzioni(), né wp_enqueue_style() consente di impostare l'attributo rel, ma se è possibile fornire maggiori informazioni su ciò che si sta cercando di realizzare, forse posso fornire una soluzione alternativa? – brandwaffle

risposta

7

Mentre nessuna funzione ti consente di passare tale valore, hai accesso al tag prima che venga eseguito il rendering con il filtro style_loader_tag. Se fai qualcosa di simile ...

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; 
} 

... dovresti essere in grado di sostituire l'attributo rel con quello che vuoi. Tieni presente che questo filtro passerà all'intero tag come html, quindi dovrai fare un preg_replace() o qualcosa di simile per sostituire il valore con quello che desideri. Inoltre, questo filtro verrà eseguito ogni volta che accodati a un foglio di stile, quindi assicurati di testare che hai quello giusto (con un preg_match() o qualcosa del genere) prima di modificare l'attributo rel.

+0

Ottimo approccio! Grazie :) –

3

so che questo è un vecchio q, ma mi ha aiutato a capirlo. prestito da risposta di brandwaffle ecco la funzione completa che ho usato:

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); 
} 
+0

meno non ho bisogno di jQuery AFAIK, ce l'hai nella serie di dipendenze –

+0

buona presa. editerà. – helgatheviking