Verwenden von featured img als div Hintergrund

Ich habe eine Kopfzeile mit voller Breite und Höhe, in der ich das vorgestellte Bild verwenden möchte, aber ich habe Probleme, das div dazu zu bringen, ein Standardbild zu laden, wenn in einem Blogpost kein Bild angezeigt wird.

Ich dachte, ich könnte so etwas machen, aber es sieht so aus, als würde es immer noch das erste Bild verwenden, um es in das div zu laden (und nicht die Standardbildeinstellung)

ID ), array( 5600, 1000 ), false, '' ); ?>  .parallax { background-image: url(); }    .parallax { background-image: url("/wp-content/themes/propertunity/assets/images/backgrounds/highway.jpg") !important; }    

Was mache ich falsch?

Solutions Collecting From Web of "Verwenden von featured img als div Hintergrund"

Versuchen Sie etwas wie folgt:

 < ?php global $post; $src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), array( 5600,1000 ), false, '' ); $default = get_template_directory_uri()."/assets/images/backgrounds/highway.jpg"; $bgimg = (isset($src[1])) ? $src[0] : $default; ?>  

wp_get_attachment_image_src() sagt, dass es false zurückgibt, wenn es nicht gefunden wird, aber aus irgendeinem Grund hatte ich eine schlechte Zeit damit, also überprüfe ich einfach, ob die Breite eines gefundenen Bildes zurückgegeben wird ( $src[1] ). functioniert immer.

get_template_directory_uri() ist ein besserer Ansatz als ein relativer Pfad – Sie werden feststellen, dass dies auf anderen Seiten als der Startseite get_template_directory_uri() wird. Abhängig von Ihrer Website könnte dies tatsächlich Ihr Problem sein.


Hier ist ein etwas besserer Weg, um es mit einer Abfrage weniger für Effizienz zu schreiben

 < ?php global $post; $img = get_template_directory_uri()."/assets/images/backgrounds/highway.jpg"; $postThumb = get_post_thumbnail_id($post->ID); if (!empty($postThumb)) { $src = wp_get_attachment_image_src( $postThumb, array( 5600,1000 ), false, '' ); if (isset($src[1])) $img = $src[0]; } ?>  

PS hier ist, wie man Code auf dieser Site formatiert .

AKTUALISIEREN:

$post wird nicht immer die aktuelle PAGE sein, wenn du auf einem ARCHIVE, deinem Haupt-Feed, und so weiter, wie du es beim Posten gefunden hast, den ersten Post postest. Daher müssen Sie möglicherweise festlegen, was die aktuelle Seite tatsächlich ist:

 < ?php global $post; $thisPage = false; if (is_singular()) $thisPage = $post; elseif (is_home()) $thisPage = get_post(get_option('page_for_posts')); // other conditionals for other non-singular things here if ($thisPage) { $postThumb = get_post_thumbnail_id($thisPage->ID); // etc