有些時候,在索引頁中(首頁、分類文章、標簽文章、作者文章索引……)提前進入 WordPress 文章循環中( Loop ),以獲得一些我們想要獲得的信息,但 WP 中,單一頁面一般只會一次性跳入循環,也就是說,我們下次再從循環中汲取信息的時候,我們將獲得循環中第二篇日志的信息,為了解決這一尴尬局面,WordPress 內置了一個函數,rewind_posts()函數專門用來重置循環指針。
Description 描述
Rewind the loop posts.
重置文章循環。
使用
該函數不接受變量。
<?php rewind_posts(); ?>
實例
在此引用 WordPress 默認主題 twenty eleven 中,author.php 文件 第15-55行,並予以簡化。
<?php if ( have_posts() ) : the_post();//進入循環 echo get_the_author() ; //顯示文章作者,在循環外使用需指定作者ID rewind_posts();//重置循環 while ( have_posts() ) : the_post(); //循環開始 get_template_part( 'content', get_post_format() );
總結
有的時候,WordPress 有的函數必須進入循環才能使用,所以我們為了達到某些目的不得不提前進入循環,但如果我們在接下來的代碼中在此用到循環,那循環會跳到第二篇的位置,所以我們不得不用到 rewind_posts() 來重置循環。twenty eleven 主題中只是給了一個很簡單的例子,具體什麼時候要用到還是要看主題作者的使用環境而言,也許有的時候我們要在一個頁面中循環兩次甚至更多次文章,那麼改函數用處會更大。
PS:single_cat_title()函數
single_cat_title()函數,日常中我們很少會用到,但這個函數會給我們解決很多問題,諸如當前頁面的目錄、標簽,該函數不依附於 WordPress 主循環中,也不能放入主循環中使用。
描述
獲取當前頁面的分類、標簽。
<?php single_cat_title($prefix,$display); ?>
實例
在此摘取 WordPress 2011 默認主題中,category.php 文件 第18行左右位置的代碼
<?php printf( __( 'Category Archives: %s', 'twentyeleven' ), '<span>' . single_cat_title( '', false ) . '</span>' ); ?>