Jag har blivit smått förälskad i {less}. Det är helt enkelt sjukt bra och användbart. Att det inte redan finns variabler i css är en gåta men som tur är är det enkelt att använda {less} i WordPress, och man kan göra ungefär såhär.
Först en helt vanlig registrering av style.
wp_register_style('less', get_bloginfo( 'template_directory', 'display' ) . '/style.less', false, '1.0');
wp_enqueue_style('less');
Och därefter behöver man se till att
rel="stylesheet"
skrivs om till
rel="stylesheet/less"
Vilket man kan lösa med ett filter
function filter_less($tag){
if(strpos($tag,'.less') && strpos($tag,'stylesheet')){
$tag = str_replace('stylesheet','stylesheet/less',$tag);
}
return $tag;
}
add_filter( 'style_loader_tag', 'filter_less' );
Det hela parsar du sedan med less.js som inkluderas som vanligt.
wp_enqueue_script('less', get_bloginfo( 'template_directory', 'display' ) . '/js/less-1.3.0.min.js', false, '1.3.0', false);
Själva parsningen går snabbat och resultatet cachas bra av browsern. Dock känns det kanske lite knasigt att parsa i klienten så nu har jag istället tittat lite på hur man kan sköta detta lokalt och skicka ut en klar .css istället.
Det kan man lösa på lite olika sätt och ett väldigt enkelt är att installera WP-less som i sin tur wrappar lessphp. Det har fungera bra för mig med undantag av @import. Lessphp skapar en cachead fil och skapar en ny om orginalet ändras. Sweet, men det fungerar inte om man använder @import, för då ser inte kompilatorn att källfilen blivit ändrad. Minst sagt opraktiskt.
Jo, förresten – jag är tillbaka på Jayway, det känns som att de roligaste och duktigaste konsulterna finns där . Jag är väldigt glad att kunna vara tillbaka igen!