Wordpress als CMS für statische Seiten
09. Januar 2006 by lexWordpress erzeugt zwar von Haus aus dynamische Seiten via PHP und greift auf eine MySQL-Datenbank zu, das Blog-System lässt sich dennoch als Content-Management-System (CMS) für eine statische Website verwenden. Voraussetzung ist allerdings, dass die benötigten Komponenten lokal installiert werden, was auf einem Linux-Rechner kein Problem darstellt. Ich habe den LAMP auf Suse Linux 10 eingerichtet. Um Wordpress mit Mod-Rewrite-Regeln betreiben zu können, waren lediglich zwei kleine Anpassungen in der "default-server.con" (unter /etc/apache2/) notwendig:
In den " Options" müssen die Parameter "+FollowSymLinks" und "+SymLinksIfOwnerMatch" und unter "AllowOverride" der Parameter "FileInfo" zugelassen werden. Außerdem muss der angemeldete (bloggende) Benutzer im Verzeichnis des localhost (unter Suse Linux /srv/www/htdocs/) volle Zugriffsrechte (chmod -R 777) haben.
Im Prinzip wird Wordpress auf dem lokalen Server so betrieben wie auf einem Webserver. Um statische Seiten zu gewinnen, grabbe ich die unter "http://locahost" liegende Site mit "wget" in ein beliebiges lokales Verzeichnis. Die dort gespeicherten HTML-Seiten lassen sich dann mit dem FTP-Server der Webste synchronisieren (zum Beispiel mit "sitecopy"). Dieser Vorgang muss wiederholt werden, sobald ein Posting im Web veröffentlicht werden soll.
Für wget empfehlen sich die Optionen -r (rekursives Speichern), -x (erzwingt das Anlegen der Verzeichnisstruktur der Site), -k (konvertiert absolute Links in relative) sowie -N (setzt einen Zeitsempel, so dass nur Seiten gegrabbt werden, die sich geändert haben oder neu dazu gekommen sind).
In einer so erzeugte Site können drei von Wordpress bereitgestellte Funktionen ohne PHP und ohne Datenbank nicht funktionieren: die Suche, die Kommentare sowie Trackbacks. Aus den Standard-Templates habe ich die entsprechenden PHP-Aufrufe herausgenommen. Die Funktionen lassen sich einigermaßen anständig ersetzen. Bei der Suche habe ich mich für "Free WebSearch and SiteSearch" von Google entschieden. Bei der Kommentarfunktion greife ich auf Haloscan zurück. Der Dienstleister bietet entsprechenden Code bereits fertig für Wordpress konfiguriert an. Via Haloscan lassen sich auch Trackbacks einbinden, worauf ich zunächst jedoch verzichtet habe.
Die weiteren Anpassungen der Templates beschränken sich neben optischen Modifikationen (im Gegensatz zum Kubrick-Theme werden Body und Contenbereich via Syles und ohne Hintergrundbilder erzeugt) auf eine zweite Seitenleiste, die in den Archiven und neben den Postings angezeigt wird, sowie zwei PHP-Abfragen für die alphabetische Rezeptliste - eine generiert die Liste automatisch aus den Postings der Kategorie "Kochen & Backen", die andere zeigt den entsprechenden Navigationspunkt unter "Kochen & Backen" in der Seitenleiste an.
Ein kleines Problem besteht mit dem von Wordpress erzeugten RSS-Feed. Wget wandelt hier korrekterweise die absoluten Links nicht in relative (würde im Feedreader keinen Sinn ergeben), so dass die Links im Feed weiterhin auf localhost verweisen. Da der Feed lokal erzeugt wird, hilft trotz verfügbarem Wordpress-Plugin auch ein Dienst wie Feedburner nicht weiter. Die Referenzadresse auf dem öffentlich zugänglichen Webserver fehlt. Ich habe das Problem mit einem kleinen "sed"-Script gelöst (s/localhost/webadresse/gp;), das ich vor dem FTP-Upload ausführe.






