Die in letzter Sekunde in WordPress 2.5 eingebundene WordPress-Galerie ist leider noch mit einigen Bugs behaftet, welche einem die Fertigstellung und Nutzung (oder Auslieferung) einer validen WordPress-Galerie ziemlich erschweren können.
Check out my validation plugin…
Was mich an der integrierten WordPress-Galerie besonders verblüfft hat, war der Umstand, dass WordPress die hauseigene WordPress 2.5 Gallery in einem relativ grausamen XHTML-Code veröffentlicht hat. „WordPress is a state-of-the-art publishing platform with a focus on aesthetics, web standards, and usability…“ heißt es auf wordpress.org – und normalerweise ist das tatsächlich auch der Fall. Hmmm… merkwürdig… der Trend geht irgendwie weg vom Marketing und hin zum Web-Coding. 😉
Galerie-Anforderungen eines aktuellen Projekts:
Valider XHTML-Code, Möglichkeit zum Massenupload, Möglichkeit zur Massenbearbeitung hochgeladener Bilder, Suchmaschinenoptimierung für Galerien bzw. Fotoalben und einzelne Bilder. Umsortierung von Bildern auf der Startseite (Hauptkategorie-Übersichten im Thumbnail-Format), Verwendung von Excerpts, (benutzerdefinierten) Zusatzfeldern und unterschiedlichen Bildgrößen auf Übersichten, Kategorieansichten, Detailseiten und Lightbox-Ansichten.
Nach einigen Tests mit verschiedenen Galerie-Plugins – eigentlich wollte ich die Galerie mit einem in der WordPress 2.5 Beta-Version getesteten Plugin namens Photoq Photoblog Plugin entwickeln, was auf dem Kundenserver dank PHP4 jedoch nicht möglich war – habe ich mich dazu entschlossen, zur integrierten WordPress-Galerie zurückzukehren und diese vernünftig zum Laufen zu bringen. (ACHTUNG: Der Entwickler des PhotoQ – Galerie-Plugins hat bereits ein Update bereitgestellt – „Vielen Dank für Deine außergewöhnliche Plugin-Action, Manuel!“)
Zentraler Angriffspunkt zur Optimierung der integrierten WordPress-2.5-Galerie ist eine Datei mit Namen media.php. Diese Datei befindet sich im Verzeichnis wp-includes der WordPress-Installation. Detailansichten der Bildergalerie kann man über die Datei image.php im Themes-Ordner der Galerie optimieren. Doch nun zur Lösung der verschiedenen WordPress-2.5-Galerie-Probleme:
1. Galerie Upload-Probleme auf Kunden-/Anwenderseite:
Hier und dort wird empfohlen, das Batch-Upload-Feature bei Problemen mit dem eingebauten Flash-Upload einfach abzuschalten:
„/wp-admin/includes/media.php öffnen und die Zeile 770 “$flash = false;” editieren.“
In meinem Fall hat die Kundin einfach ihren Flash-Player aktualisiert. Anschließend konnte sie das Feature fehlerfrei nutzen. Andere hatten weniger Glück, fanden aber schließlich auch noch eine Lösung für ihr Flash-Upload-Problem. Auf die Möglichkeit zum Massenupload sollte man in einer Bildergalerie nach Möglichkeit nicht verzichten.
2. Diverse Probleme mit der wohl wichtigsten Galerie-Datei, der media.php
Wer seine Bilder validieren möchte, sollte in seiner media.php zunächst die Links und Bild-Links überprüfen: Title-Attribute haben in Image-Links nichts zu suchen und Alt-Attribute haben in normalen Links nichts zu suchen. Für Bilder ohne Alt-Tag weist der XHTML-Validator (www.w3.org) normalerweise Fehlermeldungen aus, die man im Notfall auch durch ein leeres Alt-Tag (alt=““) recht simpel vermeiden kann.
Korrekturvorschlag für Zeile 99 (quick and dirty):
$html = '<img src="'.attribute_escape($img_src).'" alt="'.attribute_escape($alt).'" '.$hwstring.'class="align'.attribute_escape($align).' size-'.attribute_escape($size).' wp-image-'.$id.'" />';
Korrekturvorschlag für Zeile 327 (quick and dirty):
$html = '<img src="'.attribute_escape($src).'" alt="" '.$hwstring.'class="attachment-'.attribute_escape($size).'" />';
Weitere Validierungsvorschläge finden sich im WordPress Trac. Sie werden mit dem WordPress 2.5.1-Update zur Verfügung gestellt werden.
Problematischen Galerie-Code mit Plugin überschreiben:
Schlimmer als die oben genannten Probleme sind jedoch Verschachtelungsfehler, die auf den Ausgabeseiten der WordPress-Galerie zu erheblichen Störungen führen können. Für diese Präsentations- bzw. XHTML-Fehler habe ich ein kleines „Galerie-Korrektur-Plugin“ geschrieben:
Das WordPress 2.5 Gallery Validation Plugin filtert die Verschachtelungsfehler aus der wp-includes/media.php heraus, kann helfen, die fehlerhafte Einblendung von CSS-Skripten im Body-Bereich der Galerie zu verhindern und erlaubt es dem Nutzer sowohl die Verschachtelungen der Galerie-Container als auch die Optik (CSS-Stylesheet) zu korrigieren, ohne in den WordPress Code der Galerie selbst eingreifen zu müssen.
Dazu habe ich das „Gallery Validation Plugin“ in jeweils eine Datei für Plugin und CSS aufgeteilt. Das Plugin führt keine Datenbankänderungen durch, sondern modifiziert lediglich die Ausgabe der Datenbankabfragen. Man kann damit also nichts kaputt machen und beliebig experimentieren, bis neue WordPress-Versionen erscheinen. (Dann einfach abschalten und mit neuem WordPress-Code weitermachen…)
Wer möchte, nutzt das Plugin wie immer kostenlos – und auf eigene Gefahr. 😉
Installationshinweise:
1. Zip-Datei downloaden und entpacken.
2. Plugin-Ordner komplett in das verzeichnis wp-content/plugins/ hochladen
( -> wp-content/plugins/fob-gallery-validator/ ).
3. WP 2.5 Gallery Validation Plugin aktivieren.
4. Plugin und CSS-Dateien beliebig anpassen und nutzen.
P.S.: Alternativ kann man die CSS-Regeln des WordPress 2.5 Validation Plugins auch in das gegenwärtig genutzte Stylesheet kopieren und den Plugin-Code in die functions.php des aktuellen Themes.
Nachtrag:
In der Voreinstellung habe ich für Galerie-Übersichten den Caption-Teil deaktiviert, weil mich die Texte in Album-Übersichten gestört haben. Falls jemand dort Texte für Einzelbilder anzeigen möchte, muss er die Deaktivierung im Plugin-Code entfernen ( /* */ ). Die Thumbnail-Übersichten sind für 100-120 Pixel breite Fotos eingestellt. Dies lässt sich in der CSS-Datei des Plugins ändern.