欢迎来到本节课,我们将深入探讨WordPress在页面上输出文章的机制。
通过本课,您将:
- 描述循环在主题中的使用方式
- 列举循环可以显示的一些示例
- 探索如何显示自定义文章类型和自定义字段的数据
循环在主题中如何使用?
这一切始于使用主题模板文件在页面上显示文章的愿望。
例如,这里我们看到的是一个作品集主题存档页面的模板文件。循环从WordPress数据库中提取每篇文章的数据,并用适当的信息替换每个模板标签,例如文章的标题和摘要。
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// 显示文章内容
endwhile;
endif;
?>
循环中的任何HTML或PHP代码都会针对每篇文章进行处理。简单来说,循环名副其实。它逐个遍历为当前页面检索到的每篇文章,并执行主题中指定的操作。
循环可以显示什么?
现在让我们看看循环可以显示的一些示例。
这里我们看到的是Twenty Seventeen主题的演示站点,这是一个经典主题,他们使用循环来显示博客文章。这是一个博客主页,对于每篇文章,我们看到元数据、文章标题、特色图片和摘要。
使用循环的其他示例包括在单篇文章上列出评论,以及从自定义文章类型和自定义字段中提取数据,这就是我们接下来要看的。
自定义文章类型和自定义字段
在我们的下一个示例中,我们将看一个具有自定义文章类型”portfolio”的作品集主题,我们将使用循环来显示作品集文章并包含一个自定义字段。
让我们开始吧。
这里我们看到的是作品集文章。每篇文章都有一个文章标题、项目简介和特色图片。
让我们在WordPress仪表板中查看其中一篇文章。
在这篇文章中,右侧我们看到技能和工具的分类,底部我们看到项目简介自定义字段。
现在让我们看看这是如何完成的。
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();?>
<div class="cm-post-list mb-5">
<a href="<?php the_permalink(); ?>"><h2><?php the_title(); ?></h2></a>
<?php
if ( ! has_excerpt() ) {
echo '';
} else {
the_excerpt();
}?>
<?php $project_info = get_post_meta( get_the_ID(), 'catmom_textarea', true );
if ( $project_info ): ?>
<p class="project-meta"><?php echo $project_info; ?></p>
<?php endif;?>
<?php the_post_thumbnail();?>
</div><?php
endwhile;
else :
// 当没有找到文章时,输出此文本。
_e( '抱歉,没有符合您条件的文章。' );
endif;
wp_reset_postdata(); ?>
我们通过验证是否有任何作品集文章来开始循环,如果有,那么首先显示的是标题,使用the_permalink()模板标签,我们使the_title()可点击,所以它是一个链接。
接下来我们有一个if语句,它验证我们是否有摘要。模板标签the_excerpt()用于显示摘要。
接下来是自定义字段,名为catmom_textarea。我们稍后会看看这是如何完成的,但这里的if语句验证项目信息是否存在。如果该字段中有数据,它将在这里显示。
最后在底部,我们看到使用the_post_thumbnail()模板标签来显示文章的特色图片。
创建了一个插件来创建自定义字段,它实际上特别被称为元框。这个元框是项目简介,你可以在这里看到使用ID,我们有catmom_textarea字段,我们在刚刚查看的PHP代码中引用了它。
下一步
要了解更多关于循环的信息,请参考WordPress.org上提供的主题手册。