0
点赞
收藏
分享

微信扫一扫

WordPress模板层次15:归档模板


归档模板是构建WordPress主题时的超级有用的模板。

我们不仅仅可以通过对日期进行归档,还可以按照类别归档。

打开模板层次结构图:





WordPress模板层次15:归档模板_hive



​​Archive.php wordpress xuhss.com01 - WordPress模板层次15:归档模板​​



可以看到,对于所有归档页面,archive.php 用作其他所有特定归档模板的备胎。

对于特定的归档类型,有对应的特定的模板,可以看到有基于

  • 作者( Author Archive )
  • 类别( Category Archive )
  • 自定义文章类型( Custom Post Type Archive )
  • 自定义分类( Custom Taxonomy Archive )
  • 日期( Date Archive )
  • 标签( Tag Archive )

等归档类型。

它们都对应一个核心的模板文件:

  • author.php
  • category.php
  • archive-$posttype.php
  • taxnomy.php
  • date.php
  • tag.php

对于其中一些模板,还有更具体的模板,比如,基于slug或ID。

日期归档模板date.php

来到网站前台,打开Blog页面,在右侧,可以看到有一个按日期归档的小工具。点击它,实际调用的就是date.php模板。




WordPress模板层次15:归档模板_自定义_02



​​Archive.php wordpress xuhss.com02 - WordPress模板层次15:归档模板​​



我们可以看到它是基于日期的URL:​​http://localhost/localwp.com/2017/08/​​(根据你的文章创建时间,目录会有所不同,我是17年8月份创建的)。

而且,如果删除网址中的月份,只剩年份,也就是:​​http://localhost/localwp.com/2017/​​

这时,就会把一年内的所有的文章都按照月份列出来:




WordPress模板层次15:归档模板_php_03



​​Archive.php wordpress xuhss.com05 - WordPress模板层次15:归档模板​​



所以,在​​模板结构图​​中,可以看到 date.php 将控制年,月和日的归档:




WordPress模板层次15:归档模板_hive_04



​​Archive.php wordpress xuhss.com07 - WordPress模板层次15:归档模板​​



接下来,打开主题中的date.php文件:

<?php get_header(); ?>

<div class="container" role="main">

<div class="row">

<div class="col-md-8">

<div class="page-header">
<h1><?php wp_title( '' ); ?></h1>/***输出标题***/
</div>

<ul>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>/***循环***/
<?php if( is_year() ): ?>/***如果是按照年份归档***/
<h3><?php the_date( 'F' ); ?></h3>/***输出月份信息***/
<?php endif; ?>
<li><?php the_time( 'jS' ); ?> - <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; endif; ?>

类别归档模板category.php

通用的类别归档模板叫做 category.php 。

和​​定制页面模板page.php​​的原理一样:




WordPress模板层次15:归档模板_hive_05



​​Archive.php wordpress xuhss.com09 - WordPress模板层次15:归档模板​​



它也可以根据给定类别的 **ID **或 **名称(slug) **来定制更具体的模板:




WordPress模板层次15:归档模板_hive_06



​​Archive.php wordpress xuhss.com08 - WordPress模板层次15:归档模板​​



1.通过id来定制类别归档模板

主题中的 catalog-8.php 是根据类别的ID定制的模板:




WordPress模板层次15:归档模板_php_07



​​Archive.php wordpress xuhss.com10 - WordPress模板层次15:归档模板​​



要想查看模板对应的网站前台显示效果,可以访问:​​Travel分类目录​​:




WordPress模板层次15:归档模板_php_08



​​Archive.php wordpress xuhss.com12 - WordPress模板层次15:归档模板​​



2.通过名称(slug)定制类别归档模板

同样的,还可以通过类别的名称来定制模板。实际上,我已经在代码中,写好了一个叫做Catalog-Special的模板。

可以访问:​​Special分类目录​​,你会看到一匹彩虹马:




WordPress模板层次15:归档模板_自定义_09



​​Archive.php wordpress xuhss.com15 - WordPress模板层次15:归档模板​​



所以,catalog-special.php 也是一个完全自定义的模板。

在catalog-special.php模板代码中,可以看到。它只是放置一些自定义HTML,然后是一张有趣的图片:

<style type="text/css">
div {
width: 400px;
margin: 100px auto;
}
img {
width: 100%;
}
h1 {
text-align: center;
}
</style>
<div>
<h1>You're Special!!!!</h1>
<img src="<?php bloginfo('template_directory'); ?>/images/rainbow-unicorn.jpg">
</div>

这可能不是你想要实现的效果,但是通过我在这里自定义的天马行空的类别模板,就可以想象,你也可以自定义你要的哪个特定效果的模板。

作者归档模板author.php

同样地,可以通过作者的id以及作者的名称来实现作者模板的定制:




WordPress模板层次15:归档模板_hive_10



​​Archive.php wordpress xuhss.com16 - WordPress模板层次15:归档模板​​



例如,在网站前台,找到一篇文章,点击作者。它就会带我到作者详细介绍的页面,这里有作者头像,名字和最近发布的文章。它使用的就是 author.php 模板。




WordPress模板层次15:归档模板_hive_11



​​Archive.php wordpress xuhss.com17 - WordPress模板层次15:归档模板​​



关于作者归档模板定制的原理和​​定制页面模板page.php​​类似。

在当前的主题中,我通过添加 author-editor.php 模板文件,来实现作者归档模板(author-$nacename.php)的定制。




WordPress模板层次15:归档模板_php_12



​​Archive.php wordpress xuhss.com18 - WordPress模板层次15:归档模板​​



你可以添加一个叫做editor的用户(WordPress后台 >> 用户 >> 所有用户,并添加另一个用户)

然后,新建一篇文章,将作者设为editor。就可以看到定制的作者归档模板 author-editor.php 的效果了:




WordPress模板层次15:归档模板_php_13



​​Archive.php wordpress xuhss.com2 - WordPress模板层次15:归档模板​​



所以这可以给大家在不同的作者页面上:提供很大的灵活性。而且,如果您想为每个作者定制模板,那么就可以使用此方法轻松实现。

所以,到目前为止,我们已经定制了很多归档模板。你会发现他们的工作原理非常类似,关于标签归档模板 tag.php 也是一样,所以我们不会更深入地讲解。

  • 本文固定链接: ​​http://www.xuhss.com/theme-dev/template-hierarchy/archive-php​​
  • 转载请注明: ​​MrBang​​​ <time>2018年03月02日 </time>于 ​​虚幻私塾​​ 发表


举报

相关推荐

0 条评论