WP_Queryからpost_title値を返そうとすると、このエラーが発生します。
**Fatal error:** Cannot use object of type WP_Query as array
これがコードです:
$query = new WP_Query( array( 'meta_key' => 'Old ID', 'meta_value' => $atts['oldid'] ) );
return $query['post_title'];
このクエリの後に投稿の要素を表示する方法を教えてください。私はWP_Queryを使っています。なぜなら私はPostsとPagesの中で使われるようにショートコードを作っているからです。
WP_Query
のロジックを理解しているかどうかわかりません。言葉で説明するのではなく、これがコード例です。
$query = new WP_Query( array( 'meta_key' => 'Old ID', 'meta_value' => $atts['oldid'] ) );
if ( $query->have_posts() )
return $query->posts[0]->post_title;
return '';
WP_Queryと対話するためのコーデックス をチェックしてください。
_ update _ :通常どおりにクエリを使用します。すなわち、 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(); ?>
エラーが発生した場合は、オブジェクトを配列として使用していることを意味します。オブジェクト要素にアクセスする場合は、->
ではなく[]
を使用します。$query->post_title
しかし、それはどちらもうまくいかないので、投稿をループする必要があります
while ($query->have_posts()){
$query->the_post();
//here you can use the post data with the $post object
//$post->post_title
//$post->content
//....
}