WordPress模板層次15:歸檔模板

huangbangqing12發表於2018-07-08

歸檔模板是構建WordPress主題時的超級有用的模板。

我們不僅僅可以通過對日期進行歸檔,還可以按照類別歸檔。

開啟模板層次結構圖:

可以看到,對於所有歸檔頁面,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模板。

我們可以看到它是基於日期的URL:http://localhost/localwp.com/2017/08/(根據你的文章建立時間,目錄會有所不同,我是17年8月份建立的)。

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

這時,就會把一年內的所有的文章都按照月份列出來:

所以,在模板結構圖中,可以看到 date.php 將控制年,月和日的歸檔:

接下來,開啟主題中的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的原理一樣:

它也可以根據給定類別的 **ID **或 **名稱(slug) **來定製更具體的模板:

1.通過id來定製類別歸檔模板

主題中的 catalog-8.php 是根據類別的ID定製的模板:

要想檢視模板對應的網站前臺顯示效果,可以訪問:Travel分類目錄

2.通過名稱(slug)定製類別歸檔模板

同樣的,還可以通過類別的名稱來定製模板。實際上,我已經在程式碼中,寫好了一個叫做Catalog-Special的模板。

可以訪問:Special分類目錄,你會看到一匹彩虹馬:

所以,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以及作者的名稱來實現作者模板的定製:

例如,在網站前臺,找到一篇文章,點選作者。它就會帶我到作者詳細介紹的頁面,這裡有作者頭像,名字和最近釋出的文章。它使用的就是 author.php 模板。

關於作者歸檔模板定製的原理和定製頁面模板page.php類似。

在當前的主題中,我通過新增 author-editor.php 模板檔案,來實現作者歸檔模板(author-$nacename.php)的定製。

你可以新增一個叫做editor的使用者(WordPress後臺 >> 使用者 >> 所有使用者,並新增另一個使用者)

然後,新建一篇文章,將作者設為editor。就可以看到定製的作者歸檔模板 author-editor.php 的效果了:

所以這可以給大家在不同的作者頁面上:提供很大的靈活性。而且,如果您想為每個作者定製模板,那麼就可以使用此方法輕鬆實現。

所以,到目前為止,我們已經定製了很多歸檔模板。你會發現他們的工作原理非常類似,關於標籤歸檔模板 tag.php 也是一樣,所以我們不會更深入地講解。

相關文章