WordPress中重置文章循环的rewind_posts()函数讲解
有些时候,在索引页中(首页、分类文章、标签文章、作者文章索引……)提前进入WordPress文章循环中(Loop),以获得一些我们想要获得的信息,但WP中,单一页面一般只会一次性跳入循环,也就是说,我们下次再从循环中汲取信息的时候,我们将获得循环中第二篇日志的信息,为了解决这一尴尬局面,WordPress内置了一个函数,rewind_posts()函数专门用来重置循环指针。
Description描述
Rewindtheloopposts.
重置文章循环。
使用
该函数不接受变量。
<?phprewind_posts();?>
实例
在此引用WordPress默认主题twentyeleven中,author.php文件第15-55行,并予以简化。
<?php if(have_posts()):the_post();//进入循环 echoget_the_author();//显示文章作者,在循环外使用需指定作者ID rewind_posts();//重置循环 while(have_posts()):the_post();//循环开始 get_template_part('content',get_post_format());
总结
有的时候,WordPress有的函数必须进入循环才能使用,所以我们为了达到某些目的不得不提前进入循环,但如果我们在接下来的代码中在此用到循环,那循环会跳到第二篇的位置,所以我们不得不用到rewind_posts()来重置循环。twentyeleven主题中只是给了一个很简单的例子,具体什么时候要用到还是要看主题作者的使用环境而言,也许有的时候我们要在一个页面中循环两次甚至更多次文章,那么改函数用处会更大。
PS:single_cat_title()函数
single_cat_title()函数,日常中我们很少会用到,但这个函数会给我们解决很多问题,诸如当前页面的目录、标签,该函数不依附于WordPress主循环中,也不能放入主循环中使用。
描述
获取当前页面的分类、标签。
<?phpsingle_cat_title($prefix,$display);?>
- $prefix:用于设置在标题之前显示的内容。
- $display:用于设置是直接显示还是返回到变量。
实例
在此摘取WordPress2011默认主题中,category.php文件第18行左右位置的代码
<?php printf(__('CategoryArchives:%s','twentyeleven'),'<span>'.single_cat_title('',false).'</span>'); ?>