2011-11-10 6 views
7

Creo (o mejor intento) para crear mi primer tema de WordPress con Less.wp_enqueue_style y rel diferente de stylesheet?

Lo que hago es usar un script como el que en mi functions.php

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

y el resultado es 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 pregunta es, ¿puedo cambiar de alguna manera el rel = "hoja de estilos" cuando uso la función wp_register_style()?

+0

Ninguna de las funciones wp_register_style() ni wp_enqueue_style() le permitirá configurar el atributo rel, pero si se puede proporcionar más información sobre lo que está tratando de lograr, tal vez puedo proporcionar una solución alternativa? – brandwaffle

Respuesta

7

Si bien ninguna función le permitirá ingresar ese valor, tiene acceso a la etiqueta antes de que se represente con el filtro style_loader_tag. Si haces algo como esto ...

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

... usted debe ser capaz de reemplazar el atributo rel con lo que quieras. Tenga en cuenta que este filtro pasará toda la etiqueta como html, por lo que tendrá que hacer un preg_replace() o algo similar para reemplazar el valor con lo que desee. Además, este filtro se ejecutará cada vez que coloque en cola una hoja de estilo, así que asegúrese de probar que tiene la correcta (con un preg_match() o algo así) antes de alterar el atributo rel.

+0

¡Un enfoque genial! Thansk :) –

3

sé que esta es una vieja q, pero me ayudó a resolver esto. endeudamiento de la respuesta de brandwaffle aquí está la función completa utilicé:

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

menos no necesita jQuery AFAIK, lo tiene en la matriz de dependencias –

+0

buena captura. editará – helgatheviking

Cuestiones relacionadas