首页 > 主题开发 > 模板层次 > WordPress模板层次15:归档模板
2018
03-02

WordPress模板层次15:归档模板

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

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

打开模板层次结构图:

归档模板 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模板。

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

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

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

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

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

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

归档模板 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的原理一样:

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

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

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

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

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

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

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

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

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

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

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

归档模板 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以及作者的名称来实现作者模板的定制:

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

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

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

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

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

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

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

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

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

 

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

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

最后编辑:
作者:MrBang
WordPress迷

留下一个回复