Ich erhalte diesen Fehler, wenn ich versuche, den Wert post_title von meiner WP_Query zurückzugeben:
**Fatal error:** Cannot use object of type WP_Query as array
Hier ist der Code:
$query = new WP_Query( array( 'meta_key' => 'Old ID', 'meta_value' => $atts['oldid'] ) );
return $query['post_title'];
Wie kann ich die Elemente des Posts nach dieser Abfrage anzeigen? Ich verwende WP_Query, weil ich einen Shortcode für Posts und Pages erstelle.
Ich bin mir nicht sicher, ob Sie die Logik von WP_Query
verstehen. Hier ist ein Codebeispiel, das nicht in Worten erklärt wird.
$query = new WP_Query( array( 'meta_key' => 'Old ID', 'meta_value' => $atts['oldid'] ) );
if ( $query->have_posts() )
return $query->posts[0]->post_title;
return '';
Schauen Sie sich den Codex für die Interaktion mit WP_Query an.
UPDATE: Um die Abfrage wie gewohnt zu verwenden, d. h. The Loop ;
<?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(); ?>
der Fehler, den Sie erhalten, bedeutet, dass Sie ein Objekt als Array verwenden. Wenn Sie auf ein Objektelement zugreifen möchten, verwenden Sie ->
und nicht []
, also $query->post_title
.
aber das wird auch nicht funktionieren, Sie müssen über die Post Schleife
while ($query->have_posts()){
$query->the_post();
//here you can use the post data with the $post object
//$post->post_title
//$post->content
//....
}