WordPress-Allerei #1
Folgend eine Sammlung an .. äh … Dingen für und zu WordPress, die im Laufe der letzten Tage zusammengekommen sind
Mega Dropdown-Navigation
Diese “Mega Dropdowns” liegen derzeit richtig im Trend – und sind durchaus eine willkommene Verbesserungsmöglichkeit in Sachen Gliederung wie auch Usability. Habe letzte Woche einen Auftrag übernommen, der genau dies angediehen wird.
Geilerweise habe ich mich damit gar nicht lange beschäftigen müssen – es gibt nämlich ein (bzw. sogar zwei, dazu später) WordPress-Plugin mit dem wundervoll komplizierten Namen “jQuery Drop Down Mega Menu Widget“, das einem all die mühevolle Arbeit abnimmt, die sonst auf dem Programm steht.
Wie der Name schon sagt, ist es ein Widget, dass sich mittels eines Navigation Menu (aka “Menü” in der deutschen Übersetzung) befeuern lässt. Ein Widgetbereich, der aus Kompatiblitätsgründen immer noch unter dem Namen “Sidebar” geführt wird, lässt sich schnell im Header – oder wo auch immer die Hauptnavigation herumfliegen mag – einfügen und dann unter “Design > Widgets” bzw. “Appearance > Widgets” befüllen.
Das Plugin kommt mit einer Handvoll an Skins, die von sich aus schon ordentlich was hermachen. Desweiteren werden für sämtliche Zustände (z.B. aktuelle Seite, Hover, usw.) entspr. Klassen eingebunden – Anpassungen sind also sehr leicht machbar
Mehr dazu auf der Plugin-Seite: jQuery Drop Down Mega Menu Widget
Performance-Optimierung: Alles in den Footer
Wer sich intensiv mit Performance-Optimierung auseinandersetzt, dem dürfte auch das Thema “Scripts möglichst am Ende der Seite laden” unter den Nägeln brennen. Leider findet sich hierzu relativ wenig im Netz – einen guten, wenn auch schon etwas älteren Artikel konnte ich dennoch auftreiben: Getting all JavaScript into the Footer in WordPress? Not so fast, Buster! @ CloudFour
Post Revisions
Bei jeder Änderung eines Eintrags oder Seite legt WordPress eine Revision an, d.h. die vorherige Version wird zusätzlich gesichert.
Primärer Vorteil: Wenn man versehentlich einen wichtigen Teil löscht oder einem bestimmte Änderungen nicht gefallen, kann man zu der ursprünglichen Version zurückkehren.
Nachteil: Auf Dauer sammeln sich ewiglich viele Revisionen an und vermüllen die Datenbank. Dadurch kann eine Datenbank um das 50- bis 100-fache an ursprünglich benötigter Größe anwachsen. Leider ist von Haus aus keine Begrenzung für diese Funktion eingestellt – und es beseht ebensowenig die Möglichkeit, alte Versionen zu löschen.
Derzeit teste ich einige Plugins an, die dieses Problem beheben sollen – denn mit einem einfachen DELETE * FROM wp_posts WHERE post_type = "revision" ist es beileibe nicht getan! Vielleicht möchte man ja nur die letzten 3 Revisionen behalten, und dann womöglich nur von veröffentlichten Artikeln, nicht aber Seiten oder Entwürfen …
.. dafür sind nun diese Plugins gedacht. Neben der klassischen Option zur Festlegung der Menge an Revisionen pro Eintrag lassen sich mit diesen Plugins teils ganz gezielt überflüssige Revisionen, teils auch in großem Umfang oder ab bestimmten Zeitpunkten entsorgen. Mehr dazu in Kürze in diesem Blog


@ Sebastian: Wenn du dir das von mir genannte Plugin genauer angeschaut hättest, wäre dir sicher aufgefallen, dass die zugehörige JS-Datei unminified nur 8,3 kb ausmacht
Und da grö0tenteils auf das WordPress’sche Menüsystem gesetzt wird, hält sich der Overhead durchaus in vernünftigen Grenzen.
Zwecks der Minify-Geschichte: Die hilft, wie du ja schon mehrfach festgestellt hast, nur bedingt. Hat aber auch weniger mit Performance-Optimierung zu tun. Viel eher helfen On-Demand-Script- und -CSS-Loading, ist aber mit regulärem WordPress nicht ohne weiteres umsetzbar – da muss man schon sehr in die tiefen Abgründe der Ladeautomatik und des Script-Queueings steigen
Bei KERNenergie habe ich das Problem teilweise mit Pre-Rendering des Contents, Headern und Footern je nach Anforderung (Startseite, Artikel, Einzelseite, usw.) sowie einer rudimentären eigenständigen Script Queue gelöst. An manchen Stellen wird auch LazyLoading bzw. AJAX-basiertes Post Loading verwendet. Es lässt sich aber an verschiedenen Stellen noch mehr herausholen.
Faktisch gehen solche Optimierungen aber eben auch wie gesagt nur dann, wenn du extreme Anpassungen durchführen kannst (und willst; der Arbeitsaufwand ist nicht unbeachtlich). Das geht natürlich nicht bei jedem Projekt.
cu, w0lf.
Also so schön die Menüs mit jQuery auch sind, aber was mich immer wieder nervt, sind diese großen .js Dateien die geladen werden müssen, die gerne mal an die 100 kb sind.
Thema Performance Optimierung, ich finde da immer wieder Hinweise zu solchen Minify Scripten, da werden sämtliche .JS Dateien zu einer verarbeitet und CSS komprimiert. Für WordPress gibt es da WP-Minify (siehe http://wordpress.org/extend/plugins/wp-minify/) aber in allen Tests die ich damit gemacht habe, auch hier bei uns im Blog ging das voll in die Hose, hat nie geklappt, weil bei allen meinen Tests wie ich hier schon tausend mal geschrieben habe, dass CSS voll geschrottet wird.
Thanks for the mention about the mega menu plugin!