[WP] 使用 Static Page 建立 Archives

WordPress 1.5 的 Theme 觀念 ,將原本 index.php 的結構分開,以預設的 Kubrick 為例,主要分為:

404.php: 錯誤訊息頁面
archive.php: 文章分類及日期彙整頁面
comments.php: 留言頁面
footer.php: 下方的檔尾
header.php: 上方的檔頭
index.php: 首頁文章頁面
page.php: 自訂頁面
search.php: 搜尋結果頁面
searchform.php: 搜尋功能
sidebar.php: 右方的 sidebar
single.php: 單篇文章頁面
style.css: 頁面 CSS

另外還有自訂的 page 模板: archives.php 及 links.php

這些檔案都是在 theme 底下運作的,導致原本多功能的文章彙整頁面就無法使用了。其實運用原本 theme 底下,只要進入管理介面,發表 > 新建網頁,網頁模板選擇 Archives,就可以建立出簡單的文章彙整頁面。

如果要寫一個獨立於 theme 的頁面呢? 這就要使用 Static Page 的觀念。

Step 1.
首先,一個基本的 Static Page 架構為:

<?php
require_once('./wp-config.php'); $single = 1; $siteurl = get_settings('siteurl');
$themes = get_themes();
$current_theme = get_current_theme();
$current_template_dir = $themes[$current_theme]['Template Dir'];
include($current_template_dir . "/header.php");
?>

//置入內容

<?php include($current_template_dir . "/footer.php"); ?>

改良自 二三街角: 關於 Static Page

<?php
require('./wp-blog-header.php');
get_header();
?>

<div id="content" class="widecolumn">
//置入內容
</div>

<?php get_footer(); ?>

新增一個名為 archives.php 檔案,將以上 Static Page 架構貼入。

Step 2.
之後,將 http://weblogtoolscollection.com/b2-img/narchives.phps 另存為 PHP 檔,編輯並只擷取其中的

<div id="content">

<?php
$posts_per_page = '-1';

一直到

<?php } }
}?>
</div>

將其貼到 Static Page 的內容部分,再於第一行的 <div> 內加上 class="widecolumn",套上 CSS 以符合結構。如下:(感謝 San Wang 的提醒!!)

<div id="content" class="widecolumn">

存檔,放置於 blog 的根目錄下,如此,原本華麗的文章彙整頁面又復活啦!

UPDATED:
要注意的是,這個方法是新增一個檔案放入 blog 的根目錄 (root) 下,而不是修改 theme 底下的 archives.php

Bookmark to del.icio.usBookmark to furlBookmark to Blinklist

18 Responses to “[WP] 使用 Static Page 建立 Archives”


  1. 如果昨天這篇文章就有出現的話,我修改 Taiwan Blogger Map 文字版頁面的時間應該不會超過五分鐘。叩謝叩謝… XD

    另外,我覺得 <div> 要加上 class=”widecolumn”,不然文字就跑出框外了。如下:
    <div id=”content” class=”widecolumn”>

  2. 喔喔 變換的banner可以加入flickr的blog banner
    別藏私了 都帶來吧 這些我都喜歡!

    上方的快捷列是我最歡喜的!

  3. San Wang,
    感謝提醒!! 已經加上了~

    Yoshigi,
    你這麼一說,我才想起我也是 blog banner 的 member 之一 :p

  4. 如果要顯示表情符號的話
    除了啟用wp-grins的外掛外
    還要貼語法在使用中的theme的index.php裡嗎?
    謝謝囉!!
    juusa ^^

  5. 關於 Static Page

    雖然在 hsuyo 老大的 blog上有提供一個方法, 不過我怎麼踹出現的頁面編碼都怪怪的: 亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼.

    後來踹很了多種方法, 找…

  6. […] ic Page
    Thursday, March 10th, 2005

    雖然在 hsuyo 老大的 blog上有提供一個方法, 不過我怎麼踹出現的頁面編碼都怪怪的: 亂碼亂碼亂 […]

  7. 我不明白何故我跟以上教學製作archives.php頁,
    得出的結果是只有本月的顯示(無奈我本月並沒有任何發表):
    http://wp.ustar-hk.net/?page_id=93
    以下位置可看文字版:
    http://wp.ustar-hk.net/wp-content/themes/fasttrack/archives.txt
    希望各位大大能指點迷津。

  8. 我文章寫的不夠清楚,sorry

    是要新增一個檔案放入 blog 的根目錄 (root) 下,而不是修改 theme 底下的 archives.php

    或許你可以再試試 ;-)

  9. 經你指點後,果真能活出來,
    然而唯一搞不明的,
    就是出現一句錯誤:
    Warning: extract(): First argument should be an array in /nssb/wwwroot/ustar-hk.net/wp/wp-includes/functions.php on line 1733
    這是當我要使用「」時出現的。這句是用作列出頁頂的圖和菜單。
    我察覺獨獨用這句才出問題,其他諸如「」「」等需要套用theme的都沒問題,但查看header.php這個需要引用的檔內容都只是HTML碼。
    不知你會否解破到呢^^

    你的回應真快,真感激呀!我自學PHP的,但面對著wp一大堆支離破碎又互動運作的檔,都看呆了。

  10. archives.php的文字版本位置:
    http://wp.ustar-hk.net/archives.txt
    運行中的archives.php頁:
    http://wp.ustar-hk.net/archives.php

  11. 問題或可說成:在列出「文章彙頁」這部份之前用get_header或get_sidebar都出現該錯誤報告。

  12. 我這麼多篇留言……真的怕有被誤為洗板之嫌……
    但相信這是最後一篇,
    因為我亂砌一堆之後,將get_header()改為require_once(’頁首模版’);
    避過了那句function.php 裏的 extract()。
    希望沒有問題吧……
    但若你有空又不煩倒你的話,期待大大的解決方案^^。
    抱歉為你帶來任何麻煩。

  13. 你客氣了,不會麻煩
    原本的那個問題,我也不太清楚
    很多情況我也是像你一樣東改西改試出來的

    看來你後來已經找到解決的方法
    現在看一切正常了

    cheers!

  14. […]
    加入文章彙整功能
    4 月 4 日 Blog

    參考 hsuyo BLOG 的 這篇 文章 , 為WP 1.5加入文章彙整功能 這樣就可以一次看到所有文章 , 雖 […]

  15. […] 目前本BLOG有的功能如下:                                 ◎ 留言板 → 用CGI所架的2ape留言板,已經完工,Skin暫時不會更動了;此留言板沒有悄悄話功能,請大家勿留悄悄話,若有私密之事請用mail連絡。                                 ◎ Archives → 文章彙總,參考hsuyo的這篇文章所新添的功能。想要一次看足所有文章與搜尋本Blog各分類的文章,請使用此鏈結。 […]

  16. hsuyo , 我使用了你的這項彙總功能,但卻出現了錯誤碼,如下↓

    WordPress database error: [Unknown column ‘user_level’ in ‘where clause’]
    SELECT * FROM wp_users WHERE user_level > 0

    Warning: Invalid argument supplied for foreach() in /home/carrieli/public_html/wp/archives.php on line 39

    ===============================

    我不知道是出了什麼問題,可以麻煩hsuyo幫我解惑嗎?!

    另,我的文章彙總的運行頁面的URL為↓
    http://www.carrieli.why3s.net/wp/archives.php

    麻煩了^^

  17. hello 非/Carrie,

    你可以試著改成以下的方法:

    <?php
    require('./wp-blog-header.php');
    get_header();
    ?>

    <div id="content" class="widecolumn">
    //置入內容
    </div>

    <?php get_footer(); ?>

    如果還是不行,也可以考慮用 Static front page plugin 看看

    good luck.

  18. […] ◎ Archives → 文章彙總,參考hsuyo的這篇文章所新添的功能。想要一次看足所有文章與搜尋本Blog各分類的文章,請使用此鏈結。 拿掉了! […]