有些時候,在索引頁中(首頁、分類文章、標籤文章、作者文章索引…)提前進入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>' ); ?>
以上就介紹了WordPress中重置文章循環的rewind_posts函數講解,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。