我是wordpress的新手。在循环内部,我想检查帖子是否是查询的第一个结果。
这是我的代码。
<?php
$args = array('post_type' => 'home-slider', 'posts_per_page' => 6, 'order' => 'ASC');
$query = new WP_Query( $args );
while ($query->have_posts()) : $query->the_post();
?>
<?php if ( ) { ?> // check if first post
<p>TEST</p>
<?php } else { ?>
<p>TEST123</p>
<?php } ?>
<?php
endwhile;
?>
提前致谢。
答案 0 :(得分:1)
尝试此代码
首先在while循环中定义$inc=1;
然后在循环if($inc==1)
时检入然后打印您想要的内容并使用$inc++;
增加$ inc值
<?php
$args = array('post_type' => 'home-slider', 'posts_per_page' => 6, 'order' => 'ASC');
$query = new WP_Query( $args );$inc=1;
while ($query->have_posts()) : $query->the_post();
?>
<?php if ($inc==1 ) {$inc++; ?> // check if first post
<p>TEST</p>
<?php } else { ?>
<p>TEST123</p>
<?php } ?>
<?php
endwhile;
?>
答案 1 :(得分:1)
您可以将其移至外部并在if()
语句后查询第一篇帖子,而不是在循环内部进行检查:
<?php
$args = array('post_type' => 'home-slider', 'posts_per_page' => 6, 'order' => 'ASC');
$query = new WP_Query( $args );
?>
<?php if ($query->have_posts()) : $query->the_post(); ?>
<p>TEST</p>
<?php
endif;
while ($query->have_posts()) : $query->the_post();
?>
<p>TEST123</p>
<?php endwhile; ?>
答案 2 :(得分:0)
WP_Query对象具有一个current_post field, which is actually a counter,从0开始计数。
<?php
$args = array('post_type' => 'home-slider', 'posts_per_page' => 6, 'order' => 'ASC');
$query = new WP_Query( $args );$inc=1;
while ($query->have_posts()) : $query->the_post();
?>
<?php if ($query->current_post==0) { ?> // check if first post
<p>TEST</p>
<?php } else { ?>
<p>TEST123</p>
<?php } ?>
<?php
endwhile;
?>