it-swarm.com.de

Ist es möglich, die Attribute eines registrierten Stils oder Skripts zu ändern, bevor es ausgelöst wird?

Ich möchte die Eigenschaften eines registrierten Stils (oder Skripts - das Gleiche gilt) ändern, bevor er geladen wird.

Im Moment versuche ich, einen registrierten Stil zu ändern, kurz bevor er in die Warteschlange gestellt wird, damit ich ihn auf eine andere Datei verweisen kann (dh ändere die Eigenschaft src, vielleicht auf eine andere). Suchen Sie nach bestimmten Ideen, wo Sie das $wp_styles -Objekt einbinden und ändern können, damit die Warteschlange wie gewohnt ausgelöst wird, wobei sich jedoch die Eigenschaften des registrierten Stils ändern.

Ich erstelle ein Admin-Farbschema und dachte, es wäre fantastisch, wenn ich die vorhandene Enqueue umschreiben/optimieren könnte, anstatt jeder Seite eine zusätzliche Anfrage hinzuzufügen (z. B. colors-fresh.css + mein Stylesheet - ich hätte es lieber eine Anfrage, warum nur das Original-Stylesheet einbinden, um jeden Stil in einem anderen neu zu definieren) ...

Den Style abmelden und meinen eigenen registrieren? - Ich müsste dann beide Farbschemata (klassisch/frisch) abmelden, wenn ich es vorziehen würde, das Styles-Objekt einfach anzuhängen und zu optimieren, bevor die Enqueue ausgelöst wird.

Ich bin mir ziemlich sicher, dass es möglich ist, aber es fehlt einfach die Gehirnleistung, um meinen Kopf jetzt darum zu wickeln .. (wurde zu lange verkabelt) ..

Anregungen willkommen ....;)

4
t31os

Ändern Sie den Pfad eines registrierten Stils

Ich wollte den Pfad zu einem der WordPress-Admin-Stylesheets optimieren, um Anfragen zu unterdrücken, und weil es wenig sinnvoll ist, zwei Stylesheets einzuschließen, wenn das von mir aufgerufene alle Stile in dem von WordPress eingereihten Stylesheet neu definiert.

Die Idee ist im Grunde, den vorhandenen Stil auf ein anderes Stylesheet zu verweisen, zwei Haken sind angebracht

  • style_loader_src
  • style_loader_tag.

Ersteres enthält nur die Stylesheet-URL (oder den Pfad) und das Handle (das ist der Name, mit dem das Style registriert ist), letzteres enthält die vollständige HTML-Zeichenfolge (und das Handle) für das Stylesheet, das eingeschlossen wird.

Ich habe mich für style_loader_src entschieden, um den Farb-Stylesheet-Pfad (src) zu ändern, da dies buchstäblich alles ist, was ich brauche, um den Pfad anzupassen und das aktuelle Handle zu kennen.

Beispielfilter, der den Pfad zum Farb-Stylesheet ändert.

Überprüft, ob es sich bei dem Ziehpunkt um das Farb-Stylesheet handelt, und aktualisiert den Pfad, wenn dies der Fall ist.

function switch_stylesheet_src( $src, $handle ) {
    if( 'colors' == $handle )
        $src = plugins_url( 'my-colors.css', __FILE__ );
    return $src;
}
add_filter( 'style_loader_src', 'switch_stylesheet_src', 10, 2 );

Der obige Filter übernimmt im Grunde die vorhandene Farb-Stylesheet-Ausgabe, z.

<link rel='stylesheet' id='colors-css' href='http://example.com/wp-admin/css/colors-fresh.css?ver=20100610' type='text/css' media='all' />

Und konvertiere es nach ..

<link rel='stylesheet' id='colors-css' href='http://example.com/wp-content/plugins/my-plugin/my-colors.css' type='text/css' media='all' />

Ich halte diese Methode für vorzuziehen, um ein zusätzliches Stylesheet in die Warteschlange zu stellen, es sind weniger Anforderungen erforderlich und es sind weitaus weniger CSS-Überschreibungen erforderlich, was auch immer Sie tun, da Sie im Wesentlichen diese Anforderung hijacken, um stattdessen Ihr eigenes Stylesheet zu laden.

7
t31os

Sie können den Filter wp_admin_css_uri in der gleichnamigen Funktion verwenden, die die URL der Admin-CSS-Dateien zurückgibt. Z.B.:

function custom_modify_styles( $_file, $file ) {
    if( 'style' == $file ) // $file = css filename without extension
        $_file = 'my/new/path/to/style.css';
    return $_file;
}
add_action( 'wp_admin_css_uri', 'custom_modify_styles', 10, 2 );
2
sorich87