O que estou tentando fazer é usar menos css com o Wordpress.
Você deveria vincular seus arquivos .less com o atributo rel definido como 'stylesheet / less'. Mas não consigo descobrir como alterar o código que o enfileiramento_style gera.
Existe uma maneira de aplicar um filtro e afetar a saída?
Edição: Se alguém está curioso sobre como eu acabei fazendo isso funcionar, aqui está o trecho de código:
function enqueue_less_styles($tag, $handle) {
global $wp_styles;
$match_pattern = '/\.less$/U';
if ( preg_match( $match_pattern, $wp_styles->registered[$handle]->src ) ) {
$handle = $wp_styles->registered[$handle]->handle;
$media = $wp_styles->registered[$handle]->args;
$href = $wp_styles->registered[$handle]->src . '?ver=' . $wp_styles->registered[$handle]->ver;
$rel = isset($wp_styles->registered[$handle]->extra['alt']) && $wp_styles->registered[$handle]->extra['alt'] ? 'alternate stylesheet' : 'stylesheet';
$title = isset($wp_styles->registered[$handle]->extra['title']) ? "title='" . esc_attr( $wp_styles->registered[$handle]->extra['title'] ) . "'" : '';
$tag = "<link rel='stylesheet' id='$handle' $title href='$href' type='text/less' media='$media' />";
}
return $tag;
}
add_filter( 'style_loader_tag', 'enqueue_less_styles', 5, 2);
filters
wp-enqueue-style
cbaigorri
fonte
fonte
$tag = "<link rel='stylesheet/less' id='$handle' $title href='$href' type='text/less' media='$media' />\r\n";
Respostas:
Sim, a saída final do link de estilo é passada pelo
style_loader_tag
filtro.fonte
Eu criei uma função que usa o método query () da classe WP_Dependancies. Além disso, ele não regenera a saída, mas apenas reescreve as partes necessárias.
A função acessa o objeto global $ wp_styles e executa uma consulta para obter o objeto da folha de estilo. Com o regex, o src é verificado se contém um arquivo .less e, se isso for verdade, o atributo rel é modificado de acordo. Além disso, na minha função, substituí o sufixo -css no ID por um sufixo -less, basta remover esta linha se você não gostar.
fonte
mudar
rel=stylesheet
pararel=stylesheet/less
na$tag
definição .. tambémrel=alternate stylesheet/less
, não funciona ..fonte
Obrigado pela sua resposta. Não funcionou para mim até que eu coloquei o eco no lugar do retorno:
fonte