WordPress中重置文章循环的rewind_posts()函数讲解

有些时候,在索引页中(首页分类文章标签文章、作者文章索引……)提前进入 wordpress 文章循环中( Loop ),以获得一些我们想要获得的信息,但 WP 中,单一页面一般只会一次性跳入循环,也就是说,我们下次再从循环中汲取信息的时候,我们将获得循环中第二篇日志的信息,为了解决这一尴尬局面,wordpress 内置了一个函数,rewind_posts()函数专门用来重置循环指针。

Description 描述

Rewind the loop posts. 重置文章循环。

使用

函数不接受变量。

rush:PHP;">

实例

在此引用 wordpress 主题 twenty eleven 中,author.PHP 文件 第15-55行,并予以简化。

rush:PHP;"> 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 主循环中,也不能放入主循环中使用。

描述 获取当前页面分类标签

rush:PHP;">

实例 在此摘取 wordpress 2011 主题中,category.PHP 文件 第18行左右位置的代码

rush:PHP;"> PHP printf( __( 'Category Archives: %s','twentyeleven' ),'' . single_cat_title( '',false ) . '' ); ?>

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...