Basteln mit Thesis

Es war abzusehen (und ein klein wenig beabsichtigt): Mit der Einführung eines WordPress-Themes, das eher ein Framework ist, geht die Bastelei wieder los. Und alle müssen dürfen mitlesen.

Einer der Hauptvorteile von Thesis (Affiliate-Link!) ist, dass der eifrige Bastler beim Anpassen von Layout und Präsentation nicht mehr – wie bei allen anderen WordPress-Themes, die ich im Laufe der letzten zwei Jahre kennengelernt habe – in den Theme-Dateien selbst herumfuhrwerken muss und spätestens beim nächsten Theme-Update alles von vorne anfangen darf. Für einen alten WordPress-Bastler wie mich ist das aber auch ein Nachteil, weil in den üblichen Theme-Dateien so gut wie nichts steht, was über eine Ansammlung von sog. hooks hinausgeht.

Nun ist das Konzept von hooks nicht wirklich neu – höchstens mir. Aber der Mensch lernt, solange er lebt.

Eine Funktion, die mein Weblog schon zu Zeiten von worldwideklein.com und der ExpressionEngine hatte, war, vergleichsweise sinnlose, wechselnde taglines unter den Titel zu packen. In der EE gab es diese Funktion serienmäßig, für WordPress gibt es verschiedene Plugins, die ich nacheinander in die header.php des jeweiligen Themes gepackt habe. Mit Thesis geht das nicht mehr, weil es ja keine Theme-Dateien im herkömmlichen Sinn mehr gibt.

Nun kann ich in Thesis überall auch PHP-Code ausführen lassen, hätte also eine Plugin-Funktion wahrscheinlich auch über die benutzereigene custom.php an die richtige Stelle packen können. Aber zum Üben, und weil es Spaß macht, wenn es dann auch funktioniert, habe ich meinen eigenen tagline-Rotator geschrieben. Von randomness kann keine Rede sein; das Ding greift sich, abhängig von der (Unix-) Uhrzeit eine von genau zehn Taglines und zeigt sie mitsamt dem Titel an. Und so sieht das aus und steht jetzt in meiner custom.php:

function my_tagline() {
$triggr = time() % 10;
$randm = array(0 => "<h2 id=\"tagline\">Es heisst DAS Weblog!</h2>",
1 => "<h2 id=\"tagline\">Classic Edition</h2>",
[...]
9 => "<h2 id=\"tagline\">Kein rechtsfreier Raum</h2>");
echo "<h1 id=\"logo\">bluelectric.org</h1>";
echo $randm[$triggr];
}

Die Darstellung des Titels als <p> ist nicht meine Idee, sondern die der Thesis-Macher, die ich der Einfachkeit halber gerade mal nachgemacht habe. Semantisch ist das nicht, aber mit ein wenig CSS-Kopieren werde ich das bald auf <h1> (und die Unterzeile auf <h2>) umstellen. Update: Das umzustellen, war kein großes Problem, da Thesis die Überschrift nicht nach den HTML-Entities gestylt hat, sondern nach den IDs. So konnte ich h1 durch h2 und p durch h1 ersetzen, und so wird durch den Rotator die Sache semantisch korrekter. Und vielleicht sicher geht das auch eleganter, aber ich muss mich ja erst wieder reinfrickeln.

So, jetzt muss noch der Default-Header deaktiviert und mein neuer Header aktiviert werden, ebenfalls in der custom.php:

remove_action('thesis_hook_header', 'thesis_default_header');
add_action('thesis_hook_header', 'my_tagline');

Und das war’s auch schon. Und hat Spaß gemacht.