Lo que intento hacer es usar menos CSS con Wordpress.
Se supone que debe vincular sus archivos .less con el atributo rel establecido en 'stylesheet / less'. Pero no puedo entender cómo alterar el código que produce enqueue_style.
¿Hay alguna manera de aplicar un filtro y afectar la salida?
EDITAR: si alguien tiene curiosidad sobre cómo terminé haciendo que esto funcione, aquí está el fragmento 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
fuente
fuente
$tag = "<link rel='stylesheet/less' id='$handle' $title href='$href' type='text/less' media='$media' />\r\n";
Respuestas:
Sí, la salida del enlace de estilo final se pasa a través del
style_loader_tag
filtro.fuente
Hice una función que usa el método query () de la clase WP_Dependancies. Además, no regenera la salida, sino que solo reescribe las partes necesarias.
La función accede al objeto global $ wp_styles y realiza una consulta para obtener el objeto de hoja de estilo. Con la expresión regular, se comprueba el src si contiene un archivo .less, y si eso es cierto, el atributo rel se modifica en consecuencia. En mi función, además, reemplacé el sufijo -css en la ID con un sufijo -less, simplemente elimine esta línea si no le gusta.
fuente
cambiar
rel=stylesheet
arel=stylesheet/less
en la$tag
definición .. Tambiénrel=alternate stylesheet/less
, no funciona ..fuente
Gracias por tu respuesta. Sin embargo, no funcionó para mí hasta que puse eco en lugar de retorno:
fuente