Enfileire um css usando tags condicionais negativas

4

Estou criando um tema em cima do purecss.io. Para tornar a grade responsiva, preciso adicionar esta folha de estilo . De functions.php

function load_css() {

wp_enqueue_style ( 'purecss-all-not-ie', 'http://yui.yahooapis.com/pure/0.5.0/grids-responsive-min.css', array( 'purecss' ), null );
wp_style_add_data ( 'purecss-all-not-ie', 'conditional', 'gt IE 8' );

add_action( 'wp_enqueue_scripts', 'load_css' );

e a saída é

<!--[if gt IE 8]>
<link rel='stylesheet' id='purecss-new-ie-css'  href='http://yui.yahooapis.com/pure/0.5.0/grids-responsive-min.css' type='text/css' media='all' />
<![endif]-->

no entanto, a tag condicional correta deve ser <!--[if gt IE 8]><!-->

Encontrei algumas discussões aqui e aqui mas estou um pouco perdido, pois não entendo qual é a solução proposta. O que devo fazer?

    
por Barbara 24.01.2015 / 00:34

1 resposta

4

O bug tem apenas 4 anos, então você não gostaria de apressá-los! Uma solução alternativa é deixar de fora o wp_style_add_data() e usar o filtro 'style_loader_tag' :

add_filter( 'style_loader_tag', function ( $tag, $handle ) {
    if ( $handle  == 'purecss-all-not-ie' ) {
        $tag = "<!--[if gt IE 8]><!-->\n" . $tag . "<!--<![endif]-->\n";
    }
    return $tag;
}, 10, 2 );
    
por bonger 24.01.2015 / 08:36