Answers:
您应该阅读WordPress Codex上WP_Query的函数参考。那里有很多示例可供参考。如果不想使用a遍历结果集while
,则可以使用WP_Query
属性in 来获取查询返回的所有帖子posts
。
例如
$query = new WP_Query( array( 'post_type' => 'page' ) );
$posts = $query->posts;
foreach($posts as $post) {
// Do your stuff, e.g.
// echo $post->post_name;
}
'posts_per_page'=>1
在args中使用类似这样的函数。function wp_queryfirstpost($args) { $q=new WP_Query($args); $pp=$q->get_posts(); $firstpost=false;if ($pp) $firstpost=$pp[0]; wp_reset_postdata(); return $firstpost; }
$query->posts
来$query->get_posts()
触发查询解析和其他不必要的数据库查询的重新运行
实际上,您不需要拒绝使用while()
循环。相同的WP_Post对象已经存储在post
属性中:
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
// now $query->post is WP_Post Object, use:
// $query->post->ID, $query->post->post_title, etc.
}
}
if
是多余的。
if
不是多余的。在这种情况下,确实是这样,但是在大多数生产情况下,您需要在if和while之间执行代码。