澳门新葡萄京官网首页WordPress中重置文章循环的rewind

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

single_cat_title()函数single_cat_title()函数,日常中我们很少会用到,但这个函数会给我们解决很多问题,诸如当前页面的目录、标签,该函数不依附于
WordPress 主循环中,也不能放入主循环中使用。

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

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

使用 该函数不接受变量。

$prefix :用于设置在标题之前显示的内容。 $display
:用于设置是直接显示还是返回到变量。

<?php rewind_posts(); ?>

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

实例 在此引用 WordPress 默认主题 twenty eleven 中,author.php 文件
第15-55行,并予以简化。

 ' . single_cat_title . '' );?>
<?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() );

get_the_title 和 the_titleget_the_title 和 the_title
两个函数用来在文章页面显示文章标题的函数,之所以将两个函数合并到一篇文章里面去是因为这两个函是一个实现,只不过
the_title 默认直接显示,get_the_title
默认返回字符串,如果你对此心存疑惑,那请你往下看。

总结 有的时候,WordPress
有的函数必须进入循环才能使用,所以我们为了达到某些目的不得不提前进入循环,但如果我们在接下来的代码中在此用到循环,那循环会跳到第二篇的位置,所以我们不得不用到
rewind_posts() 来重置循环。twenty eleven
主题中只是给了一个很简单的例子,具体什么时候要用到还是要看主题作者的使用环境而言,也许有的时候我们要在一个页面中循环两次甚至更多次文章,那么改函数用处会更大。

函数详解get_the_title 和
the_title这两个函数主要用于在循环中显示当前文章的标题,请注意
the_title
这个函数必须使用在循环中。两者的区别在于,get_the_title仅能以字符串形式返回文章标题,而
the_title 可以设置标题前后的自定义字符,以及是显示还是返回字符串。

PS:single_cat_title()函数 single_cat_title()函数,日常中我们很少会用到,但这个函数会给我们解决很多问题,诸如当前页面的目录、标签,该函数不依附于
WordPress 主循环中,也不能放入主循环中使用。

the_title 函数使用、参数详解

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

$before标题前的字符 $after标题后的字符
$echo显示、还是返回字符串,默认为true

 <?php single_cat_title($prefix,$display); ?>

the_title示例

  • $prefix :用于设置在标题之前显示的内容。

  • $display :用于设置是直接显示还是返回到变量。

以本文为例,我们将得到以下这样的标题:

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

‘=>get_the_title 和 the_title<='
 <?php
printf( __( 'Category Archives: %s', 'twentyeleven' ), '' . single_cat_title( '', false ) . '' );
?>

get_the_title 函数使用、参数详解

以上代码我们将得到文章标题的变量$myTitle;$ID 用于设置文章 ID
,当然在循环中我们可以省略此参数。

get_the_title 示例

get_the_title 和 the_title

总结说了这么多,不知道对您是否有所帮助?总的来说 the_title 是
get_the_title的更高一级封装。就像在
wp_title中说的那样,更高级封装,虽然使用起来简单,但能折腾花样相对少了点。下面是该两个函数的源代码

the_title 函数声明该函数位于 wp-include/post-template.php 文件的 43 –
55行左右的位置

get_the_title 函数声明该函数位于 wp-include/post-template.php 文件的
103 – 118行左右的位置

post_title : ''; $id = isset ? $post->ID :  $id; if  { if ( !empty ) { $protected_title_format = apply_filters('protected_title_format', __; $title = sprintf($protected_title_format, $title); } else if ( isset && 'private' == $post->post_status ) { $private_title_format = apply_filters('private_title_format', __; $title = sprintf($private_title_format, $title); } } return apply_filters( 'the_title', $title, $id );}?>

发表评论

电子邮件地址不会被公开。 必填项已用*标注