Ich nutze seit längerem das WordPress-Plugin Cleaner Gallery. WordPress produziert leider bei der Ausgabe der Galerie etwas unsauberen Code: der style
-Block wird im sichtbaren Bereich (body
) eingebunden. Die Erweiterung korrigiert dies und bindet den CSS-Block als externe Datei ein.
So weit ist dies in Ordnung, aber eine zusätzliche Datei nur für die Galerie ist in meinen Augen zu viel des Guten, immerhin handelt sich hier um eine nicht unbedingt notwendige Anfrage an den Server. Das Problem ist das es leider in den Einstellungen des Plugins keine Option gibt die Ausgabe der extra Datei zu unterdrücken.
In der Dokumentation (readme.html) wird folgender Code angegeben:
<?php remove_action( 'wp_head', 'cleaner_gallery_css' ); ?>
Diesen Code muss man in die functions.php einfügen. Allerdings funktioniert dieser Code nicht und daher kann man ihn getrost vergessen. Kurze Recherche brachte mich zum folgenden Code:
<?php
wp_deregister_style("cleaner-gallery");
?>
Auch dieser wird in die functions.php eingetragen und im Gegensatz zum ersten Beispiel funktioniert er auch. Anschließend die Regeln aus der cleaner-gallery.css in die style.css übertragen und das war’s.
Der Kopfbereich des HTML-Dokuments ist etwas schlanker und man spart sich einen unnötigen HTTP-Request. Ist imho interessant für Leute, die mit recht wenig Einsatz noch ein bisschen mehr aus ihrer Performance-Optimierung raus holen wollen.
Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienstleistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.
und die styles für die gallery trägt man jetzt in ein anderes css ein, was standardmäßig auf jeder seite geladen wird?
Hallo Traffic-Verschwendung.
@Gotisch,
Hallo, mal was vom Caching gehört?
Hallo, mal was davon gehört, dass es sich lohnt die Anzahl der Requests zu senken?
Hallo, vorher wurde die cleaner-gallery.css auch immer geladen.
Das JS Pendant dazu:
function my_deregister_javascript() {
wp_deregister_script( 'plugin-dir-name' );
}
Ah, dachte die css wird nur eingebunden wenn der Besucher Seiten läd die zur Gallery gehören. Bindet WP immer alle css dateien von allen plugins auf allen seiten ein? dann ist ein Dokument ja in der tat viel besser.
Einzige Problem ist dann noch wenn es überschneidungen mit elementen gibt, also ein paragraph auf der normalen seite so, und in der gallery anders dargestellt wird. aber das problem gibt es ja dann immer.
Ansonsten weiss ich nicht ob es sich lohnen würde eine 20kB css datei für eine komplexe gallery einfach so in das normal stylesheet zu übertragen. Es schaut sich ja nicht jeder Besucher die gallery an, und bei einer menge unique requests bringt caching ja auch nicht soviel, oder doch?
Ich bekomme ‘ne ganze Menge Fehlermeldungen “Warning: Cannot modify header information – headers already sent by…” im Backend, wenn ich die CSS-Datei deaktiviere.
Was kann der Grund dafür sein?
Danke Thomas
Der Grund ist daß an dieser Stelle bereits HTML-Code ausgegeben wurde und damit auch der HTML-Header bereits gesendet wurde. Danach kann man den Header nicht mehr ändern. Woran das nun im speziellen Fall liegt.. evtl. mal in der php.ini der Ausgabepuffer aktivieren.
Davon abgesehen, find ich es schon erstaunlich wieviele einzelne Requests eine “durchschnittliche” Blogseite heutzutage benötigt bis sie geladen ist. So viel zum Thema zusätzliche Styles-Datei.
Ich bekomme auch die selben fehler wie Thomas. Ich teste das gleich mal mit dem Ausgabepuffer und gebe Euch bescheid.