Je reçois cette erreur lorsque j'essaie de renvoyer la valeur post_title à partir de mon WP_Query:
**Fatal error:** Cannot use object of type WP_Query as array
Voici le code:
$query = new WP_Query( array( 'meta_key' => 'Old ID', 'meta_value' => $atts['oldid'] ) );
return $query['post_title'];
Comment puis-je afficher les éléments du message après cette requête? J'utilise WP_Query car je crée un shortcode à utiliser dans Posts et Pages.
Je ne suis pas sûr que vous compreniez la logique de WP_Query
. Plutôt que d'expliquer avec des mots, voici un exemple de code;
$query = new WP_Query( array( 'meta_key' => 'Old ID', 'meta_value' => $atts['oldid'] ) );
if ( $query->have_posts() )
return $query->posts[0]->post_title;
return '';
Découvrez le codex sur l'interaction avec WP_Query .
UPDATE: Pour utiliser la requête normalement, c'est-à-dire La boucle ;
<?php if ( $query->have_posts() ) : ?>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
l'erreur que vous obtenez signifie que vous utilisez un objet comme un tableau. Si vous voulez accéder à un élément d'objet, utilisez ->
et non pas []
so $query->post_title
mais cela ne fonctionnera pas non plus, vous devez boucler sur le poste
while ($query->have_posts()){
$query->the_post();
//here you can use the post data with the $post object
//$post->post_title
//$post->content
//....
}