Bei dem beliebten Genesis Framework kann man die Genesis Child Themes beliebig anpassen und so auch das Genesis Beitragsbild anzeigen lassen. Das geht über ein System von Hooks und Filtern sehr gut. Ohne größere Programmierkenntnisse kann man so die Ausgabe des WordPress-Loops und damit auch das Aussehen der eigenen Webseite verändern.
Inhalt
Beitragsbild anzeigen
Bei vielen der Genesis Child Themes wird standardmäßig das Beitragsbild („post-thumbnail“, auch „Featured Image“ genannt) nicht angezeigt. Das lässt sich aber leicht ändern! Dazu muss man nur etwas Code in die Datei functions.php hinzufügen, und schon kann man den Besuchern der eigenen Webseite das Genesis Beitragsbild anzeigen lassen.
Am besten macht man sich einen Abschnitt am Ende der Datei, den man mit PHP-Kommentaren großzügig kennzeichnen sollte. Dann findet man die Änderungen auch nach längerer Zeit schnell wieder. Die Änderungen sollte man immer nur im Child Theme vornehmen, damit diese nicht beim nächsten Update des Themes bzw. des Genesis Framework überschrieben werden.
Viele Varianten der Ausgabe möglich
Es sind dabei mehrere Varianten möglich, je nachdem, wo die Ausgabe des Beitragsbildes gewünscht ist. Man kann das Featured Image vor dem Titel oder nach dem Titel ausgeben. Außerdem lässt sich steuern, ob das Beitragsbild nur auf Blogposts angezeigt werden soll, oder auch auf Seiten.
Beitragsbild nach dem Post-Title anzeigen
<?php //* den öffnenden PHP-Tag weglassen, ist in der functions.php bereits vorhanden function featured_post_image() { if ( ! is_singular( 'post' ) ) return; the_post_thumbnail('post-image'); } // Beitragsbild nur auf Posts anzeigen lassen, nach dem Titel add_action( 'genesis_entry_content', 'featured_post_image', 8 );
Beitragsbild vor dem Titel anzeigen
Über den „Action Hook“ an dem man die neue Funktion andockt, lässt sich der Zeitpunkt der Abarbeitung der Funktion beim Aufruf der Seite und damit auch die Position im HTML-Quelltext bzw. „auf der Seite“ steuern. Der Action Hook wird über den Befehl add_action angesteuert. Erstes Argument ist der jeweilige Action Hook und zweites Argument die neue Funktion featured_post_image (die wir vorher definiert haben und die wir auch mein_beitrags_bild oder tom_likes_pizza hätten nennen können). Der Action Hook genesis_entry_content beschreibt die Stelle im Code, an der die Funktion beim Aufruf der Seite abgearbeitet werden soll, also wann das Beitragsbild ausgegeben werden soll. Diese Namen der Action Hooks sind im Genesis Framework festgelegt. Hier findest du eine Referenz aller Genesis Action Hooks. Und hier eine grafische Übersicht der Genesis Action Hooks. Wenn du dort nachguckst, dann findest du eigentlich von ganz alleine den Hook den du ansprechen musst, um das Featured Image vor dem Titel anzeigen zu lassen, oder? Genau, genesis_entry_header statt genesis_entry_content. Das bedeutet, mit einer kleinen Anpassung an dem Code von oben gelingt es nun, die Ausgabe des Bildes bereits vor dem Titel anzeigen zu lassen.
<?php //* den öffnenden PHP-Tag weglassen, ist in der functions.php bereits vorhanden function featured_post_image() { if ( ! is_singular( 'post' ) ) return; the_post_thumbnail('post-image'); } // Beitragsbild nur auf Posts anzeigen lassen, vor dem Titel add_action( 'genesis_entry_header', 'featured_post_image', 8 );
Kinderleicht oder?
Featured Image nur auf Seiten anzeigen
Die oben dargestellten Codeschnipsel führen allerdings nur dazu, dass das post-thumbnail auf allen (einzelnen) Beiträgen (Posts) ausgegeben wird. Auf WordPress Seiten wird das Bild hingegen nicht angezeigt.
Wenn man aber stattdessen auf den Seiten das Genesis Beitragsbild anzeigen, dann kann man das sehr leicht ändern. Dazu müssen wir uns die soeben programmierte Funktion featured_post_image (die wir wie bereits gesagt auch mein_beitrags_bild oder tom_likes_pizza hätten nennen können) etwas näher ansehen. Über die if-Abfrage wird die Ausführung der Funktion mittels return abgebrochen, wenn es sich nicht (!) um einen Einzelbeitrag handelt. Dies prüft die Funktion is_singular. Diese Funktion hat von uns als Parameter den Wert ‚post‘ mitgegeben bekommen. Wenn wir diesen Wert von ‚post‘ zu ‚page‘ ändern, so lassen wir nur noch auf Seiten das Genesis Beitragsbild anzeigen , nicht hingegen auf Blogposts (in diesem Beispiel vor dem Titel).
<?php //* den öffnenden PHP-Tag weglassen, ist in der functions.php bereits vorhanden function featured_post_image() { if ( ! is_singular( 'page' ) ) return; the_post_thumbnail('post-image'); } // Beitragsbild nur auf Seiten anzeigen lassen, vor dem Titel add_action( 'genesis_entry_header', 'featured_post_image', 8 );
Beitragsbild anzeigen auf Beiträgen und Seiten
Das Genesis Beitragsbild anzeigen auf allen Posts und Pages (also Beiträgen und Seiten) geht dann auch sehr leicht. Dazu lässt man einfach den Parameter bei der Funktion is_singular weg. Dann wird das Bild immer ausgegeben (in diesem Fall nach dem Titel).
<?php //* den öffnenden PHP-Tag weglassen, ist in der functions.php bereits vorhanden function featured_post_image() { if ( ! is_singular( ) ) return; the_post_thumbnail('post-image'); } // Featured Image auf Beitraegen und Seiten anzeigen, nach dem Titel add_action( 'genesis_entry_content', 'featured_post_image', 8 );
Genesis Framework – 1000 Hooks und Möglichkeiten
Wer noch nicht genug hat, der kann unzählige weitere Varianten der Anzeige des Beitragsbildes beim Genesis Framework ausprobieren. So könnte man eine zweite Funktion schreiben und das Beitragsbild bei Posts vor dem Titel, bei Seiten nach dem Titel ausgeben lassen. Oder das Bild auch bereits vor dem Header oder nach dem Header in deinem Blog oder deiner Nischenseite ausgeben lassen. Die Möglichkeiten sind fast unbeschränkt!
Hast du gefunden was du brauchst? Falls nicht, hier findest du weitere PHP-Tipps von mir.
Schreibe einen Kommentar