Einzelne Beiträge oder Seiten können „Featured Images“ (auf Deutsch Beitragsbilder) haben. Diese URL der Beitragsbilder kannst du mit der von dir verwendeten Funktion wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'full') );
abrufen.
Übersichtsseiten – also z.B. Beitragsarchive oder die Seite, die du als Blog-Übersichtsseite festgelegt hast – haben keine eigenen Beitragsbilder, weil sie sich dynamisch aus den vorhandenen Blogbeiträgen zusammensetzen. Hier liefert die Funktion kein Ergebnis. Statt dessen könntest du aber einen Platzhalter wählen, der immer dann angezeigt wird, wenn kein einzelner Blogbeitrag oder keine einzelne Seite angezeigt wird:
<?php
if ( is_single() || is_page() ) {
$url_backgroundimage = wp_get_attachment_url( get_post_thumbnail_id( $post->ID, 'full' ) );
} else {
$url_backgroundimage = get_stylesheet_directory_uri() . '/images/default_background.jpg';
}
?>
<div id="titelbild" style="background-image: url( <?php echo esc_url( $url_backgroundimage ); ?>);">
</div>
Thread-Starter
arte75
(@arte75)
Super vielen lieben DANK! Das klappt sehr gut.
Komischerweise aber nicht überall.
Habe auch noch ein Forum. Auf der Übersichtsseite, welche unter Seiten definiert ist, wird das eingestellte Beitragsbild angezeigt. Allerdings nicht, wenn man dann ein bestimmtes Forum auswählt und auf dieser Unterseite landet.
Das verstehe ich nicht, denn an dieser Stelle müsste doch eigentlich auch das Script und die else Anweisung greifen oder ist da auch wieder etwas anders?
Es kann gut sein, dass WordPress ein anderes Template nutzt, in dem du das if-Statement nicht eingebaut hast. Mit dem Plugin What the File kannst du prüfen, welches Template gerade für die Anzeige verwendet wird.
Thread-Starter
arte75
(@arte75)
Ja, für BBPress habe ich eine eigene Datei angelegt, die bbpress.php
Aber das if-Statement befindet sich in der header.php und sollte doch dann auf allen Seiten angezeigt werden.
Hast du mal in den Entwickler-Tools des Browsers nach Fehlermeldungen geschaut?
Gib doch zum Testen noch etwas anderes aus und schau, ob du wirklich in einem der Fälle landest.
Vielleicht liefert bbpress für ein Forum bei is_single oder is_page ein True aus und du landest im falschen Zeig deiner If/else-Bedingung.
Sonst einfach mit den entsprechenden bbPress-Conditionals erweitern:
https://codex.bbpress.org/bbpress-conditional-tags/
Gruß, Torsten