Erhalte die ID des ersten Bildes, das einem Beitrag angehängt ist

Ich suche nach einer Lösung, die es mir ermöglicht, die ID des ersten Bildes an einen Post in der Schleife anzuhängen.

Ich benutze das momentan;

$size = 'post-thumbnail'; // Define image_size to be used $args = array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'post_parent' => $post->ID ); $images = get_posts($args); $attachment_id = $images[0]->ID; $i = wp_get_attachment_image_src($attachment_id, $size); if (has_post_thumbnail()) { // Check if post thumbnail is present first the_post_thumbnail($size); } else { // If no post thumbnail is present, echo first image in post echo ''; } 

Das funktioniert gut, wenn es sich um einen einzigen Post handelt, funktioniert aber nicht korrekt in einer Post-Schleife (es wird nur die ID auf 1 Post als Gegensatz zu allen erhalten).

Ich habe gegoogelt und jede function, die ich gefunden habe, scheint das gleiche Problem zu haben, es bekommt nur die ID für einen Beitrag.

Kann mir jemand helfen?

Dies muss eine function und kein Plugin sein.

Solutions Collecting From Web of "Erhalte die ID des ersten Bildes, das einem Beitrag angehängt ist"

Ich nehme an, dass Ihr gesamter Code in der Schleife eingeschlossen ist? Und Sie sollten überprüfen, ob ein Beitrag tatsächlich Anhänge hat, bevor Sie mit dem $images Array arbeiten:

 while ( have_posts() ) { the_post(); if ( has_post_thumbnail() ) { the_post_thumbnail( /* No need for "post-thumbnail" argument, it's the default. */ ); } else { // No post thumbnail, try attachments instead. $images = get_posts( array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'post_parent' => $post->ID, 'posts_per_page' => 1, /* Save memory, only need one */ ) ); if ( $images ) { echo ''; } } } 

Beachten Sie, dass ich Ihren Code ein wenig umstrukturiert habe – es ist nicht nötig, den Server zu belasten und nach Anhängen zu fragen, wenn der Beitrag bereits eine Miniaturansicht hat.