Ändern Sie die Argumente für das “wp_register_style” des übergeordneten Themas über das untergeordnete Thema

Arbeiten an einem Child Theme für eine Site mit einer großen Anzahl separater Stylesheets, die vom Theme und den Plugins registriert / eingereiht werden. Ich möchte einige Attribute der -Tags in der endgültigen Ausgabe ändern und gleichzeitig Konflikte vermeiden, die nach der Aktualisierung eines übergeordneten Themas durch den Websitebesitzer aufgetreten sind.

Das Ziel besteht darin, die gleichen .css Dateien, die bereits vom übergeordneten Thema und / oder den Plugins festgelegt wurden, nicht erneut zu registrieren bzw. neu in die Warteschlange einzureihen, während effektiv eine neue Gruppe von Argumenten an die wp_register_style function übergeben wird.

Zum Beispiel ist dies derzeit das, was das übergeordnete Theme und die Plugins tun:

 // parent theme or plugin's php wp_register_style( 'a_stylesheet', $uri . 'css/a-stylesheet.css', array(), $version, 'screen' ); // html output  

Das Ziel ist, dass das Kind-Thema den wp_register_style Aufruf ändert:

 // child theme's php some_function_to_reregister( 'already_registered_file', $inherit, $inherit, $inherit, 'handheld' ) // if the above doesn't exist, do nothing; else, re-register with the new argument(s). // html output  

Dies ändert das -Attribut auf handheld statt screen , screen aber alles übrige, was vom übergeordneten Thema / Plugin getan wird, und überspringt die Registrierung der Datei, wenn sie noch nicht an einem anderen Ort registriert wurde (zB nach einem Update).

Scheint so, als wäre dies ein viel effizienterer Ansatz als das De-Registrieren / De-Enqueuing von css aus dem übergeordneten Thema und den Plugins, nur um es im Child-Theme zu kopieren und einzufügen und unerwartete Wrackteile in zukünftigen Updates zu haben.

Solutions Collecting From Web of "Ändern Sie die Argumente für das “wp_register_style” des übergeordneten Themas über das untergeordnete Thema"

Ich denke nicht, dass es dafür eine sichere Methode gibt, aber Sie könnten das $wp_styles global direkt nach der Registrierung, aber vor der Ausgabe ändern oder es zumindest zum Abrufen der Parameter verwenden, für die ein Stil ursprünglich registriert wurde mit.

 global $wp_styles; if( isset( $wp_styles->registered['a_stylesheet'] ) ){ $wp_styles->registered['a_stylesheet']->args = 'handheld'; } 

Nicht ideal, aber es kann für Sie arbeiten.