it-swarm.com.de

Was für ein Objekttyp ist WP_Query?

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.

3
supertrue

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(); ?>
5
TheDeadMedic

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
    //....
}
1
Bainternet