Zwei Monate mit WordPress

OK, dieser WordPress-Blog ist jetzt fast 8 Wochen online.

Besucherzahlen halten sich stark in Grenzen. Gut, habe auch keine Wunder erwartet. Artikelschreiben ist eine zähe Angelegenheit.

Dafür dürften die gröbsten Setup-Arbeiten erledigt sein, die meisten davon habe ich auch schön brav dokumentiert: 

Erste, grundlegende Dinge wie …

Piwik

Piwik-Analytics ist eingerichtet und läuft seit Anfang an gut. [Noch kein Blog-Artikel. Aber das ist so einfach, dass es sich fast nicht lohnt.] Ich bin froh, einen vollwertigen Ersatz für die Google-Analytics-Scheiße gefunden zu haben. (Ja, richtig, ich bin kein großer Google-Freund.) Wer also nicht freiwillig seine Site-Daten (und die seiner Besucher) Google zum Fraß vorwerfen will, findet hier eine mindestens ebenbürtige Alternative.

Das Ganze läuft auf dem Host, also kein Datenversand an einen Dritt-Server.

Anfangs hatte ich mit Open Web Analytics experimentiert: Hat gute Statistiken, aber ich hatte den Eindruck, es ist ziemlich ressourcenintensiv, d.h., es verlängert die Seitenladezeiten merklich. Außerdem wird es nur sehr, sehr sporadisch upgedated.

Clicky hat sich ebenfalls als unterlegene Alternative zu Piwik herausgestellt. Den Clicky-Setup habe ich hier dokumentiert.

Bilinguale Funktionalität

Einige Artikel schreibe ich auf Deutsch, einige auf Englisch und ein paar in beiden Sprachen. (Es ist zu aufwändig, alle in zwei Sprachen zu verfassen, und oft macht es auch wenig Sinn.) Daraus ergeben sich folgende Probleme:

  • Die Artikel, die in zwei Sprachen existieren, tauchen natürlich doppelt in den Feeds auf: unschön.
  • Englischsprachige Besucher, die in der Regel mit deutschen Texten nichts anfangen können, sehen diese trotzdem. (Andersherum ist es weniger ein Problem.)

Anfangs hatte ich mit ausgewachsenen Multilanguage-Plugins, wie Polylang, Multilanguage oder qTranslate experimentiert. Ich habe allerdings festgestellt, dass die alle eher heftig in die Datenbank eingreifen, d.h. ein späterer Wechsel oder das Deinstallieren des Plugins geht nur mit einer blutigen, händischen Wiederherstellung der Datenbank und/oder sogar der Post-Contents.

Die Rumexperimentiererei hat mich aber dann zu Minimallösungen geführt, die für meine Bedürfnisse eindeutig besser (und flexibler) sind:

Verlinken und ausblenden
Bei Posts mit zwei Sprachversionen diese einfach gegeneinander verlinken (am Anfang des Artikels) und eine Sprachversion ausblenden, z.B. mittels des Plugins Brilliant Easy Exclude Posts.
Damit ist das Dopplerproblem in den Feeds gelöst, aber es „verschwindet“ eine Sprachversion völlig aus dem Blickfeld, z.B. wenn der Inhalt einer Kategorie angezeigt wird. Sie ist nur noch erreichbar über den Link am Anfang des Artikels der anderen Version, oder aus der SERP.
Verlinken und filtern
Das ist die Lösung wie ich sie momentan am Laufen habe. Verlinken wie oben, und das Filtern geht mittels der Mini-Plugins Language Field und No Function Language Widget.
Language Field definiert die Sprache des Artikels (das hat den positiven Nebeneffekt, dass endlich auch der Sprach-Tag im html-Header korrekt gesetzt ist) und No Function Language Widget setzt zwei Flaggen-Icons in die Sidebar, mittels derer sich die angezeigten Artikel filtern lassen. D.h., der Besucher kann wählen, ob er alle Artikel oder nur die einer bestimmten Sprache gelistet bekommt, entweder auf Category-, Tag- oder globaler Basis1.

Update 2015-06-13: Inzwischen habe ich mich doch dazu hinreißen lassen, meine geliebte Minimal-Bastellösung durch ein ausgewachsenes Mehrsprachenplugin (Polylang) zu ersetzen 😉 Und, was soll ich sagen, es läuft sehr gut!

Vernünftige Fußnoten

Ich halte Fußnoten für was ganz Praktisches2. Die einzige Fußnotenfunktionalität, die WordPress bereitstellt, ist die im Markdown-Modul von Jetpack. Aber die funktioniert natürlich nur, wenn man Markdown auch benutzt – und sie ist nicht mal html5-save.

Inzwischen habe ich mir eine eigene Fußnotensyntax zusammengeschraubt, mit schönem CSS und entsprechenden Abkürzungen in Typinator (ein externer Textexpander). Wenn ich mich nicht täusche, ist sie auch html5-konform (z.B. kein Custom-rel-Attribut).

Update 2015-03-06: Habe inzwischen die wunderbare Welt der WordPress-Shortcodes entdeckt. Das sind quasi Custom-Tags mit Superpower, in die man alles, von html bis php, reinstopfen kann.

Gegenüber vorgefertigten html-Bausteinen ist diese Methode natürlich viel mächtiger – und vor allem auch flexibler: Den Code hinter dem Shortcut kann ich jederzeit ändern ohne die Posts selber modifizieren zu müssen. (Die Portierung auf ein anderes CMS in der Zukunft kann natürlich zu einer Herausforderung werden …)

Für die Fußnoten habe ich inzwischen das Easy-Footnotes-Plugin gefunden. Produziert gute, auto-nummerierte Fußnoten mit schönem Qtip2-Hovertext. Benötigte etwas Nacharbeit (sprachspezifische Labels, Fußnotenplatzierung korrigiert), aber jetzt läufts gut.

Syntax-Highlighter

Da ich des öfteren Scripts und Code-Schnipsel poste, war ein guter Syntaxhighlighter absolut wünschenswert. Die Suche danach (und das Finden) habe ich hier dokumentiert.

Layout, Typografisches

Dass mir in dieser Hinsicht das Twenty-Fifteen-Theme ganz gut gefällt, war Thema eines meiner ersten Artikel.

Ich habe das Theme erstmal in seiner Default-Form belassen, denn aus der DTP- und Pre-Print-Welt kommend habe ich die doch sehr beschränkte Web-Typografie immer belächelt. Allerdings habe ich dann doch eingesehen, dass sich auch mit den beschränkten Web-Mitteln einiges machen lässt (work in progress):

Schriften, Font-Setup
Andere Schriften und ein komplett neues Font-Setup, ohne dämliche Google-Fonts, was ja WordPress leider vorinstalliert bei seinen hauseigenen Themes. Das habe ich sehr ausführlich dokumentiert, inklusive Einführung zum Self-Hosting der Webfonts.
Schriftgröße, Abstände
Schriftgröße von Textkörper und Blockquote habe ich vorsichtig reduziert auf .91em bzw. 1.03em, ebenso den Absatzabstand (1.2em) und andere Kleinigkeiten.

Plugins

Das Finden der richtigen Plugins hat ziemlich viel Zeit in Anspruch genommen. Viel Unnötiges und viel Bloatware installiert und dann wieder entfernt. Inzwischen hat es sich aber eingependelt und ich fahre seit ein paar Wochen mit einem – wie ich glaube – recht guten, überschaubaren Plugin-Set.

Das Plugin-Setup wird noch Gegenstand eines Artikels in näherer Zukunft.
Inzwischen haben die Plugins ihren eigenen Artikel.

„Nativer“ AMP-Stack

AMP steht für „Apache, MySQL, PHP“. Das sind die Voraussetzungen, um einen lokalen Clone der Blog-Site am Laufen zu haben. Und das ist absolut unverzichtbar, um gewisse Sachen wie CSS/PHP-Experimente, neue Plugins usw. auszutesten, bevor man sich an der Online-Site vergeht.

Anfänglich habe ich hier die Fertiglösung AMPPS eingesetzt, welche perfekt funktioniert, mindestens genauso gut wie das 33€-teure MAMP Pro. Aber nachdem jeder Mac mit vorinstalliertem Apache und PHP kommt, ist es eigentlich schade, das nicht zu nutzen. Im Grunde muss nur noch MySQL installiert werden, und dank Homebrew geht das auch problemlos.

Ganz so problemlos war das Ganze dann doch nicht, was einfach an der Nicht-Verfügbarkeit von aktuellen und fehlerfreien Anleitungen lag. Inzwischen läuft es aber einwandfrei, und es hat den netten Vorteil, dass sich Apache nach einem Mac-Reboot automatisch startet, sodass mein lokaler Blog immer „da“ ist, ohne dass ich erst umständlich AMPPS hochfahren muss.

Inzwischen habe ich hierzu selber eine, hoffentlich fehlerfreie(re), Anleitung geschrieben.

Footnotes

  1. Das scheint prinzipiell gut zu funktionieren. Allerdings sehe ich an der 404-Liste, dass manche Besucher „Filter“ mit „Translate“ zu verwechseln scheinen: Sie öffnen einen Artikel und klicken dann auf ein Flaggenicon, um den Artikel in der anderen Sprache anzuzeigen, welche natürlich bei den einsprachigen Artikeln nicht existiert.
  2. Fußnoten – wie man an diesem Beispiel sieht – erlauben es, den eigentlichen Text kompakt zu halten, dabei trotzdem Informationen bereitzustellen und es dem Leser zu überlassen, ob er sie lesen will oder nicht.