Ce que j'essaie de faire, c'est d'utiliser moins de CSS avec Wordpress.
Vous êtes censé créer un lien vers vos fichiers .less avec l'attribut rel défini sur «feuille de style / moins». Mais je ne peux pas comprendre comment modifier le code généré par enqueue_style.
Existe-t-il un moyen d'appliquer un filtre et d'affecter la sortie?
EDIT: Si quelqu'un est curieux de savoir comment j'ai fini par le faire fonctionner, voici l'extrait de code:
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
la source
la source
$tag = "<link rel='stylesheet/less' id='$handle' $title href='$href' type='text/less' media='$media' />\r\n";
Réponses:
Oui, la sortie du lien de style final passe par le
style_loader_tag
filtre.la source
J'ai créé une fonction qui utilise la méthode query () de la classe WP_Dependancies. De plus, il ne régénère pas la sortie, mais réécrit simplement les parties nécessaires.
La fonction accède à l'objet global $ wp_styles et exécute une requête pour obtenir l'objet de feuille de style. Avec l'expression régulière, le src est vérifié s'il contient un fichier .less, et si cela est vrai, l'attribut rel est modifié en conséquence. Dans ma fonction, j'ai en outre remplacé le suffixe -css dans l'ID par un suffixe -less, supprimez simplement cette ligne si vous ne l'aimez pas.
la source
changer
rel=stylesheet
àrel=stylesheet/less
en$tag
définition .. aussirel=alternate stylesheet/less
, ne fonctionne pas ..la source
Merci pour votre réponse. Cela n'a pas fonctionné pour moi jusqu'à ce que je mette l'écho à la place du retour:
la source