Ich versuche, mit CSpress weniger CSS zu verwenden.
Sie sollten eine Verknüpfung zu Ihren .less-Dateien herstellen, wobei das rel-Attribut auf "Stylesheet / Less" gesetzt ist. Aber ich kann nicht herausfinden, wie ich den Code ändern kann, den enqueue_style ausgibt.
Gibt es eine Möglichkeit, einen Filter anzuwenden und die Ausgabe zu beeinflussen?
EDIT: Wenn jemand neugierig ist, wie ich das zum Laufen gebracht habe, hier ist der Code-Ausschnitt:
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
quelle
quelle
$tag = "<link rel='stylesheet/less' id='$handle' $title href='$href' type='text/less' media='$media' />\r\n";
Antworten:
Ja, die endgültige Linkausgabe wird durch den
style_loader_tag
Filter geleitet.quelle
Ich habe eine Funktion erstellt, die die query () -Methode der WP_Dependancies-Klasse verwendet. Außerdem wird die Ausgabe nicht neu generiert, sondern nur die erforderlichen Teile neu geschrieben.
Die Funktion greift auf das globale Objekt $ wp_styles zu und führt eine Abfrage durch, um das Stylesheet-Objekt abzurufen. Mit dem regulären Ausdruck wird der src überprüft, ob er eine .less-Datei enthält, und wenn dies wahr ist, wird das rel-Attribut entsprechend geändert. In meiner Funktion habe ich außerdem das Suffix -css in der ID durch ein Suffix -less ersetzt. Entfernen Sie einfach diese Zeile, wenn es Ihnen nicht gefällt.
quelle
ändern ,
rel=stylesheet
umrel=stylesheet/less
in$tag
Definition .. auchrel=alternate stylesheet/less
nicht funktioniert ..quelle
Danke für deine Antwort. Es hat bei mir nicht funktioniert, bis ich das Echo anstelle der Rückkehr gesetzt habe:
quelle