wordpress get_post_meta ne fonctionne pas dans la boucle
J'essaie d'obtenir des messages sur une page commandé par un champ personnalisé "prix" j'ai fait la commande, mais maintenant je ne peux pas obtenir la valeur de 'prix' écho. Le get_post_meta ne donne aucune sortie. Voici le code:
$args=array(
'meta_key'=>'price',
'post_type' => 'page',
'orderby'=>'meta_value_num',
'post_status' => 'publish',
'posts_per_page' => -1,
'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
$count=0;
while ($count<4 && $my_query->have_posts()) : $my_query->the_post(); ?>
<td><a href="<?php the_permalink(); ?>">
<img alt="product" src="/product-images/image.jpg" height="100px" width="75px"/>
<p><?php the_title(); ?></p>
<?php echo get_post_meta($my_query->ID, 'price', true); ?>
</a>
</td>
<?php
$count++;
endwhile;
}
wp_reset_query(); //Restore global post data stomped by the_post().
?>
- avez-vous vérifier que $my_query->ID est en retournant un int?
- non, il n'est pas. Que dois-je faire?
Vous devez vous connecter pour publier un commentaire.
Vous essayez d'utiliser une propriété sur
WP_Query
($ID
) au lieu de l'actuel poste de l'ID. Le premier argument deget_post_meta
devrait être un post ID, pas une propriété deWP_Query
.Si c'est quelque part dans un modèle, vous pouvez le faire:
Si c'est pas dans un fichier de modèle ou quelque part que le mondial
$post
est déclaré, vous pouvez utiliserget_the_ID
à la place:get_the_ID
est de retour quelque chose de significatif:<?php var_dump(get_the_ID()); ?>
quelque part dans votre boucle. Quel est-il de retour?