Du möchtest den Footer Deines Catch-Themes ändern? Hier erfährst Du, wie Du den Footer vollkommen frei Deinen Bedürfnissen anpassen kannst. Nebenbei lernst Du, wie Du Core-Funktionen in Deinem Child-Theme überschreibst.
Wie so oft führen verschiedene Wege zum Ziel. Der wohl einfachste und sauberste Weg besteht darin ein Child-Theme anzulegen und den Copyright-Text in der Sprachdatei anzupassen. Du solltest eigentlich immer ein Child-Theme anlegen, damit Deine Änderungen bei der Aktualisierung Deines Catch-Themes nicht verloren gehen. Die Erfahrung zeigt, dass nur wenige Webentwickler ein Child-Theme anlegen. Solltest Du dazu gehören, zeige ich Dir erst einmal einen sehr unsauberen Weg. Wir ändern einfach eine Core-Datei des Catch-Themes. Keine großartige Änderung. Dafür musst Du Dich kein Stück mit dem Code auseinandersetzen und verstehen, was da passiert. Anschliessend zeige ich Dir, wie Du die Core-Funktion in Deinem Child-Theme überschreiben kannst, wenn Du denn eines angelegt hast.
Die Core-Datei, die wir anpassen wollen, findest Du im Verzeichnis Deines Catch-Themes. Als Beispiel nehme ich hier einmal Catch-Responsive. Öffne die Datei catch-responsive/inc/catchresponsive-core.php mit einem Texteditor Deiner Wahl. Geeignet sind Editoren wie vim, Emacs, Atom. Unter Windows kannst Du Notepad nutzen.
In der Datei suchst Du nach der Funktion: catchresponsive_footer_content()
Am Ende der Funktion findest Du den Rückgabewert: echo $catchresponsive_footer_content;
In dieser Variablen steckt der komplette Footer Deines Catch-Themes. Übrigens kein besonders guter Programmierstyle, wenn eine Funktion keinen Wert zurückgibt, sondern lediglich etwas ausdruckt. Da wir hier auch ziemlich rumfuschen, können wir getrost darüber hinwegsehen.
Sehen wir uns einmal an, wo in der Funktion der Inhalt übergeben wird:
function catchresponsive_footer_content() {
//catchresponsive_flush_transients();
if ( ( !$catchresponsive_footer_content = get_transient( 'catchresponsive_footer_content' ) ) ) {
echo '';
$catchresponsive_content = catchresponsive_get_content();
$catchresponsive_footer_content = '
<div id="site-generator">
<div class="wrapper">
<div id="footer-content" class="copyright">'
. $catchresponsive_content['left'] . ' | ' . $catchresponsive_content['right'] .
'</div>
</div><!-- .wrapper -->
</div><!-- #site-generator -->';
set_transient( 'catchresponsive_footer_content', $catchresponsive_footer_content, 86940 );
}
echo $catchresponsive_footer_content;
}
add_action( 'catchresponsive_footer', 'catchresponsive_footer_content', 100 );
Die wichtige Zeile findest Du hier:
$catchresponsive_footer_content = '
<div id="site-generator">
<div class="wrapper">
<div id="footer-content" class="copyright">'
. $catchresponsive_content['left'] . ' | ' . $catchresponsive_content['right'] .
'</div>
</div><!-- .wrapper -->
</div><!-- #site-generator -->';
An dieser Stelle brauchst Du nur Deinen eigenen Footer einzugeben. Danach speichern und der Footer Deines Catch-Themes ist so geändert, wie Du ihn Dir wünschst. Das könnte dann so aussehen:
$catchresponsive_footer_content = '<div id="site-generator"><div class="wrapper"><div id="footer-content" class="copyright">Hier kommt der Inhalt Deines Footers rein</div></div></div>';
Selbstverständlich schreibst Du statt “Hier kommt der Inhalt Deines Footers rein” so etwas wie “©’ . date(‘Y’) . ‘thx cool'”. date(‘Y’) sorgt dafür, dass immer das aktuelle Jahr in Deiner Copyrightangabe steht.
Wie bereits geschrieben, ist diese Änderung nur angeraten, wenn Du ohnehin kein Child-Theme angelegt hast.
Core-Funktion im Child-Theme überschreiben
Ich schrieb bereits, dass die vorherige Lösung eigentlich sehr unsauber ist. Denn sobald Du Dein Catch-Theme aktualisieren willst, wird Deine Änderung überschrieben. Jetzt kommt die saubere Lösung. Dafür löschen wir die Funktion catchresponsive_footer_content und fügen anschliessend unsere eigene Version hinzu. Der folgende Code kommt in die functions.php Deines Child-Themes.
Wir löschen die Funktion catchresponsive_footer_content:
// Remove default catchresponsive_footer_content
function remove_catchresponsive_footer_content() {
remove_action('catchresponsive_footer','catchresponsive_footer_content',100);
}
// Call 'remove_catchresponsive_footer_content' (above) during WP initialization
add_action('init','remove_catchresponsive_footer_content');
Im nächsten Schritt fügen wir unsere eigene Funktion hinzu:
add_action('catchresponsive_footer','thx_catchresponsive_footer_content',100);
Jetzt folgt die Funktion, mit der wir den Footer erzeugen:
function thx_catchresponsive_footer_content() {
catchresponsive_flush_transients();
if ( ( !$catchresponsive_footer_content = get_transient( 'catchresponsive_footer_content' ) ) ) {
echo '';
$catchresponsive_content = catchresponsive_get_content();
$catchresponsive_footer_content = '<div id="site-generator"><div class="wrapper"><div id="footer-content" class="copyright">Hier kommt der Inhalt Deines Footers rein</div></div></div>';
set_transient( 'catchresponsive_footer_content', $catchresponsive_footer_content, 86940 );
}
echo $catchresponsive_footer_content;
}
Et voilà. Der Footer ist überschrieben. Da die Änderung diesmal in Deinem Child-Theme erfolgte, kannst Du Dein Catch-Theme jederzeit aktualisieren, ohne dass Deine Änderungen verloren gehen.
Das alles scheint Dir zu schwierig? Dann kontaktiere mich und ich setze Dir alle Änderungen an Deinem Theme um, die Du Dir wünschst.
Tausend Dank für die Beschreibung! Hat alles funktioniert.