PHP中有两种循环:
对于未知数量的元素(while()、foreach()、do()while等)
对于特定数量的元素(for())您需要一个具有特定数量元素(在本例中为12个元素)的循环。因此,while循环不是您需要的。首先看看WordPress中通常使用的循环
$posts = new WP_Query( \'numberposts=12\' );
echo \'<ol>\';
while( $posts->have_posts() ) {
$posts->the_post();
$title = get_the_title();
echo \'<li>\' . $title . \'</li>\';
}
echo \'</ol>\';
只要还有帖子,这个循环就会显示帖子。如果只有五个帖子,则只显示五个帖子。
假设您只有五篇文章,但希望显示12个列表元素。让我们从创建12个列表元素的循环开始。
echo \'<ol>\';
for( $number = 0; $number < 12; $number++ ) {
// create list element
}
echo \'</ol>\';
现在,我们需要在循环中使用一个开关来决定是否要显示另一个帖子。如果有其他帖子,请显示帖子标题。如果不是,则显示其他内容,如占位符。
echo \'<ol>\';
for( $number = 0; $number < 12; $number++ ) {
if( $number < $post_count ) {
// display post
} else {
//display placeholder
}
echo \'</ol>\';
只要当前循环项目的数量小于所有帖子的数量,就显示一篇帖子,否则显示占位符。
现在我们只需要帖子的数量。这很简单:$post_count = $posts->post_count;
$posts = new WP_Query( \'numberposts=12\' );
$post_count = $posts->post_count;
echo \'<ol>\';
for( $number = 0; $number < 12; $number++ ) {
if( $number < $post_count ) {
// display the post
$posts->the_post();
$title = get_the_title();
echo \'<li>\' . $title . \'</li>\';
} else {
//display the placeholder
echo \'<li>No more posts</li>\';
}
}
echo \'</ol>\';
我希望这将有助于澄清while循环和for循环之间的区别。