dkret-Theme und ttftitles

Kleine Programmierodyssee mit Themes und Plugins

Mit diesem Artikel begebe ich mich auf ein für mich schwieriges Terrain. Ich muss ganz dringend anmerken, dass alle Codebeispiele hier auf eigene Gefahr übernommen werden können. Im günstigen Fall sind sie nur unnötig kompliziert im ungünstigsten sind sie stark fehlerhaft. Ich bin kein Programmierer bastele aber gerne mit Programmcodes herum. Am besten geht das, in dem man irgendwo in bestehenden Code mal was reinschreibt und guckt, wo dieses Geschriebene wieder auftaucht, oder aber wo etwas kaputtgeht. Auf dieser Erkenntnis baue ich dann auf und klöppel entweder mit meinem Halbwissen herum oder aber ich kopiere mal was aus dem bestehenden Code mit anderen Variablen. Oft kommt dabei was Brauchbares herum manchmal aber auch nicht, dann erzähle ich das nur niemanden.
Seit Anfang diesen Jahres benutze ich in diesem Blog das Plugin ttftitles. Damit ist es mir möglich jeden Text in beliebiger Schriftart darzustellen. Eigentlich muss jede Schrift, die ich hier verwende auch auf dem System meines Lesers installiert sein. Mit diesem Plugin aber wird der Text in ein Bild umgewandelt und Bilder bekommt jeder so angezeigt, wie sie der Verfasser erstellt hat. Damit bin ich unabhängig von den installierten Schriften anderer Leute und kann sie so als Designelement nutzen. So verwende ich im Header der Seite z.B. eine Schrift, die auf meiner Handschrift basiert und auch alle Artikelüberschriften sind etwas extravagant.
In meinem alten Theme konnte ich das Plugin problemlos entsprechend der Installationsanleitung einbauen. Dafür mußte lediglich eine Zeile in der index.php editiert werden. Um so erschütterter war ich, dass ich in der index.php vom dkret-Theme nicht die passende Zeile zum Austauschen fand. Wie bereits beschrieben, ich habe keine Ahnung und das Theme scheint irgendwie anders programmiert zu sein.
Eigentlich soll man ja das Grundtheme nicht editieren und alle Änderungen im Child-Theme vornehmen. Dies war für mein Vorhaben leider nicht möglich. Die Zeilen, die editiert werden mußten befanden sich in der Datei ..\library\extensions\hooks-filters.php im Theme-Verzeichnis des Hauptthemes.

Dort findet man folgenden Code-Block, in dem die Artikel-Überschrift zusammengebaut wird:

// dkret3 entry title
function dkret_entry_title() {
    if ( is_404() ) {
        printf('<h2 class="entry-title">%s</h2>',
				__('Not Found', 'dkret') );
    } else {
        printf('<h2 class="entry-title"><a href="%1$s" title="%2$s" rel="bookmark">%3$s</a></h2>',
				get_permalink(),
				sprintf( __('Permalink to %s', 'dkret'), the_title_attribute('echo=0') ),
				get_the_title() );
    }
}

Meine erste Lösung bestand darin, um das get_the_title-Dings (Achtung, kein Fachbegriff!) einfach den im ttftitle-Plugin empfohlenen Ersetzungs-Tag zu verwenden. Also ungefähr so:

the_ttftext(get_the_title()) );

Das funktionierte auch auf dem ersten Blick, nur leider liefen dann die Links in den Überschriften nicht mehr. Nach vielem hin und her hatte ich dann eine Lösung gefunden, in dem ich das printf-Zeug (Achtung, auch hier kein Fachbegriff!) mit dem die Überschrift zusammengebaut wird auseinandernahm, so dass der get_the_title-Teil mit der ttftitle-Erweiterung alleine stand. Dieser Code funktionierte und läuft seit dem in diesem Blog. Er sieht aus, wie folgt:

// dkret3 entry title - Erweitert um ttftitle
function dkret_entry_title() {
    if ( is_404() ) {
        printf('<h2 class="entry-title">%s</h2>',
				__('Not Found', 'dkret') );
    } else {
		printf('<h2 class="entry-title"><a href="%1$s" title="%2$s" rel="bookmark">',
				get_permalink(),
				sprintf( __('Permalink to %s', 'dkret'), the_title_attribute('echo=0') ),
				get_the_title() );
	    printf('%s</a></h2>',
				the_ttftext(get_the_title()) );
    }
}

Das ist vielleicht nicht ganz sauber, wenn also jemand dazu Anmerkungen hat, immer her damit. Wichtig ist auch, dass diese Änderungen entgegen dem ursprünglichen Sinn des dkret-Themes im Haupt-Theme vorgenommen werden. Die hooks-filters.php gibt es nicht im Child-Theme. Das bedeutet natürlich, dass die Änderungen im Falle eines Updates des Haupthemes auch überschrieben werden. Man sollte sich also in jedem Falle eine Sicherung der Datei ablegen.

Hinterlasse einen Kommentar

Deine E-Mail wird nicht veröffentlicht.

(erforderlich)
Bitte vor dem Absenden beachten:
Human test by Not Captcha