同时查看codex 对于get_posts
函数,我注意到在大多数示例中,它们在调用get_posts
示例:
<?php
$args = array( \'posts_per_page\' => 10, \'order\'=> \'ASC\', \'orderby\' => \'title\' );
$postslist = get_posts( $args );
foreach ( $postslist as $post ) :
setup_postdata( $post ); ?>
<div>
<?php the_date(); ?>
<br />
<?php the_title(); ?>
<?php the_excerpt(); ?>
</div>
<?php
endforeach;
wp_reset_postdata();
?>
以及:
<?php
$args = array( \'post_type\' => \'attachment\', \'posts_per_page\' => -1, \'post_status\' =>\'any\', \'post_parent\' => $post->ID );
$attachments = get_posts( $args );
**if ( $attachments ) {**
foreach ( $attachments as $attachment ) {
echo apply_filters( \'the_title\' , $attachment->post_title );
the_attachment_link( $attachment->ID , false );
}
}
?>
我不确定抄本是否假设你总是有帖子,所以不需要检查?
我个人总是使用它,但不知道是否有人可以启发我,如果有必要的话。何时是使用if语句的正确时间?
SO网友:birgire
这个get_posts()
可以返回空数组
在这种情况下,foreach循环类似于:
foreach ( [] as $post )
{
// ...
}
在那里没有什么可以循环的。此代码有效。
如果代码段类似于:
echo \'<ul>\';
foreach ( $postslist as $post )
{
// <li>...</li>
}
echo \'</ul>\';
那么我们需要检查一下
$postslist
为非空:
if( $postslist )
{
echo \'<ul>\';
foreach ( $postslist as $post )
{
// <li>...</li>
}
echo \'</ul>\';
}
避免显示空
<ul></ul>
列表
这是一个例子,在许多例子中,检查帖子列表是否为非空是有意义的,但它不是必需的,就像您只需要计数一样:
echo count( (array) $postslist );