web-dev-qa-db-fra.com

get_post_thumbnail_id () Ne renvoie pas de valeur

Je change un menu d'une boucle avec query_posts en un "menu personnalisé" en utilisant wp_get_nav_menu_items, mais je n'arrive pas à récupérer le post_thumbnail.

Le code original que j'avais (extrait):

<?php
query_posts($args);
if (have_posts()) : while (have_posts()) : the_post();
    $image = wp_get_attachment_image_src(get_post_thumbnail_id());
endwhile; endif;?>

Mon nouveau code:

<?php
$menu = wp_get_nav_menu_items('Homepage blokken');
foreach($menu AS $m){
     echo $m->ID; // this echoes the correct ID
     $pThumbId = get_post_thumbnail_id($m->ID); // this returns empty
} ?>

Pourquoi ça ne marche pas?

1
Richard

Bon sang, je viens de découvrir que le $m->ID que j’utilisais n’était pas réellement le post->ID, mais le menu->ID. J'ai utilisé $m->object_id pour résoudre le problème. J'espère que cela aidera quelqu'un à l'avenir :-S

0
Richard

Veuillez utiliser ce code, vous obtiendrez la sortie exacte:

foreach ( $items as $el ) {
    if ( $el->post_parent == $parent ) {
        array_Push( 
            $ret,
            array(
                'id'   => $el->object_id,
                'text' => $el->title,
                'url'  => $el->url
            )
        );
    }
}
0
Selva Balaji