WordPress查询对象有一个内部计数器,current_post
, 您可以使用它来检查当前输出的循环中帖子的位置,是否是主查询$wp_query
或通过创建自定义查询WP_Query
. 重要的是要记住current_post
是不是zero indexed, 第一个帖子是0,第二个帖子是1,以此类推。。
例如,在模板中使用主查询:
while( have_posts() ):
the_post();
if( 0 == $wp_query->current_post ) {
echo \'this is the first post\';
// markup for first post
} elseif( 1 == $wp_query->current_post ) {
echo \'this is the second post\';
} elseif( 2 == $wp_query->current_post ) {
echo \'this is the third post\';
} else {
echo \'this is > third post\';
}
endwhile;
如果通过创建新查询
WP_Query
, 除了引用使用自定义查询创建的查询对象外,您可以执行相同的操作:
$args = array(); // your custom query args
$custom_query = new WP_Query( $args );
while( $custom_query->have_posts() ):
$custom_query->the_post();
if( 0 == $custom_query->current_post ) {
echo \'this is the first post\';
}
// etc..
endwhile;