本文主要介绍主题制作时会用到的循环(The Loop)的使用方法,以及在循环中使用的WordPress函数,解答上文《WordPress之主题制作》中参数的问题;同时会涉及到参数
$post
,本文也会详细介绍这个参数。官方文档介绍:https://developer.wordpress.org/themes/basics/the-loop/ 、
https://developer.wordpress.org/reference/classes/wp_post/
简介
循环是WordPress用于通过主题模板文件输出帖子的默认机制。在循环中,WordPress检索要显示在当前页面上的每个帖子,并根据主题说明对其进行格式化。
循环可以应用于但不限于以下地方:
- 在博客首页显示帖子标题和摘要;
- 在单个帖子上显示内容和评论;
- 使用模板标签在单个页面上显示内容;
- 显示“自定义帖子类型”和“自定义字段”中的数据。
详细说明及用法介绍
基本用法
1 |
|
上面就是循环的基本语句,将自己要显示的内容填写在上文注释部分即可。这段循环可以用在主页显示帖子标题和摘要上。
其中,利用 if
条件语句,先判断是否有帖子(have_posts()
),再用 while
循环语句。注意: if
和 while
都需要结束语, if
对应的结束语是 endif
, while
对应的是 endwhile
。
have_posts()
:被调用时实际上是调用全局变量$wp_query->have_posts()
成员函数,来简单检查一个全局数组(array)变量$posts
的一个循环计数器,以确认是否还有post,如果有返回true(1),如果没有返回false(0)。the_post()
:调用$wp_query->the_post()
成员函数前移循环计数器,并且创建一个全局变量$post
(不是$posts
),把当前的post的所有信息都填进这个$post
变量中,以备接下来使用。
循环中常见的模板标签
next_post_link()
:指向当前帖子之后按时间顺序发布的帖子的链接previous_post_link()
:指向当前帖子之前按时间顺序发布的帖子的链接the_category()
:与正在查看的帖子或页面相关的一个或多个类别the_author()
:帖子或页面的作者the_content()
:帖子或页面的主要内容the_excerpt()
:帖子主要内容的前55个单词,后接省略号(…)或阅读全文的链接。您也可以使用帖子的“摘录”字段来自定义特定摘录的长度。the_ID()
:帖子或页面的IDthe_meta()
:与帖子或页面关联的自定义字段the_shortlink()
:使用网站的网址和帖子或页面的ID的页面或帖子的链接the_tags()
:与帖子相关的一个或多个标签the_title()
:帖子或页面的标题the_time()
:帖子或页面的时间或日期。可以使用标准的php日期函数格式进行自定义。
以上的函数需要在循环中,主要原因是因为它们需要设置全局变量 $post
。所以只要能得到变量 $post
,即可调用上面的函数。所以在文章页(single)、页面(page),可以用下面的代码即可代替循环。
1 | if (have_posts()) : the_post(); |
多个循环
在一个页面中,如果使用了循环,如果再次使用则会出错。例如在header.php中输出了文章标题,再在page.php中使用 <?php if (have_posts()) : the_post(); ?>
会出现错误,得到并非想要的内容。所以这时候就要使用多循环。
例如,您可能想要在页面顶部的目录列表中显示帖子的标题,然后在页面下方显示内容。由于查询没有被更改,因此当我们需要第二次遍历帖子时,我们只需要倒退循环。为此,我们将使用功能rewind_posts()
。
1 |
|
关于参数$post
下面是常用的 $post 的变量索引,更多内容可以查看WP_Post的详细说明:
$post–>ID
:当前文章的ID;$post–>post_category
:检索文章类别;$post–>post_parent
:父页面。用于创建自定义导航元素;$post–>post_title
:文章标题;$post–>post_excerpt
:文章摘要;$post–>post_content
:检索所有文章内容以及任何标记;$post–>post_name
:检索帖子的别名;$post–>guid
:文章 Url;$post–>post_author
:文章作者ID;$post–>post_type
:返回分类类型,包括自定义分类、page或者post;$post–>post_date
:检索发布文章的本地时间戳;$post->post_modified
:文章修改的本地时间;$post–>post_status
:检索文章的状态:发布,私有,草稿,等待复审;$post–>comment_count
:返回文章的评论数量。
上述参数可以根据大家需要修改主题文件,或者制作自己的主题。制作主题的教程可以到《WordPress之主题制作》一文去查看。
官方文档介绍:https://developer.wordpress.org/themes/basics/the-loop/ 、
https://developer.wordpress.org/reference/classes/wp_post/
have_posts()、the_post()解析参考:https://www.cnblogs.com/drawblog/articles/8351327.html
$post参数参考:http://www.xuxiaoke.com/wpquestion/174.html