2017-08-25 4 views
0

gut,wp returns "falsche" Bild ID

-Code dosent Fehler machen, damit ich etwas haben, ich sehe hier nicht ...

Ich habe folgenden Code auf wp Seite:

$args = array(
    'post_type'  => 'attachment', 
    'post_mime_type' => 'image', 
    'post_parent'  => $pages->ID 
); 
$images = get_posts($args); 
$attachment_id = $images[0]->ID; 
$i = wp_get_attachment_image_src($attachment_id, $size); 
$p = array_values($i)[0]; 

if (has_post_thumbnail()) { 
    the_post_thumbnail($size); 
} else { 

} ?> 

Es, funktioniert in gewisser Weise. es wird eine Bild-URL zurückgeben und ich kann es verwenden, um Bilder auf der Seite zu zeigen, jedenfalls scheint die ID, die es zurückgibt, etwas zufällig zu sein.

Ich habe das Recht ID für Seite für Bilder in $ Seiten

i erstes Bild dieser Seite zurückkehren müsste zu suchen.

Ich würde annehmen, Array [0] wäre das erste Bild der Seite, aber offensichtlich ist es nicht, da es sehr seltsame Bilder von einer anderen Seite zurückgibt, die nichts mit dieser Seite zu tun hat.

+0

'the_post_thumbnail' die Vorschau für die _current_ Post bekommt. Wenn Sie sich außerhalb von The Loop befinden, müssen Sie zuerst den aktuellen Beitrag selbst setzen - dafür steht "setup_postdata". – CBroe

Antwort

0

Ich bin nicht sicher, aber scheint, dass Sie es falsch machen. :)

Warum können Sie nicht verwenden

echo get_the_post_thumbnail($post_id, 'thumbnail', array('class' => 'alignleft')) 

oder

get_the_post_thumbnail_url(int|WP_Post $post = null, string|array $size = 'post-thumbnail') 

oder

get_post_thumbnail_id($post_id); 
+0

basierend darauf konnte ich meinen Code wie vorgesehen arbeiten. Vielen Dank :) –

0

Bitte versuchen Sie es:

global $post; 
$args = array(
    'post_type'  => 'attachment', 
    'post_mime_type' => 'image', 
    'post_parent'  => $pages->ID 
); 
$images = get_posts($args); 
$attachment_id = $images[0]->ID; 
$i = wp_get_attachment_image_src($attachment_id, $size); 
$p = array_values($i)[0]; 

if (has_post_thumbnail($post->ID)) { 
    the_post_thumbnail($size); 
} else { 
}