本篇教學是講解有關 0.9 版本的,現在有新的一篇教學講解新版本 0.10 的。
1. 前言
因為小踢希望我有空的時候能夠寫一篇有關 Extended Live Archive Plugin 的教學,在香港 Blog 界大姐吩咐下又怎能拒絕呢:tongue1:,所以這篇文章便告誕生了,還望各位懂得使用這個 plugin 的朋友不要見笑。:blush:因為這篇教學會涉及一些內容有關 HTML、CSS、WordPress 操作等,以下是一些網頁講解這方面的資料。
- W3 Schools - HTML Tutorial
- W3 Schools - CSS Tutorial
- Web Page Design for Designer - CSS From the Ground Up
- WordPress Codex
2. Extended Live Archive Plugin 的介紹
這個 plugins 究竟有什麼用途呢?在之前的文章談及之餘再在此講解一下,這個 plugin 是提供搜尋 archives 功能的,你或許會問:「這個功能 WordPress 不是已經內置嗎?」WordPress 內置的 archives 搜尋功能是比較陽春的,而 Extended Live Archive Plugin 就不同了,這個 plugin 是根據 Super Archives Plugin 再作改進,它用了 AJAX 的方式以年份月份及文章分類的形式搜尋文章,它的效果如下:
或者只是文字及圖片的介紹大家可能都不大理解,大家可以到我的 archives 頁面親身體驗效果。:wink:(現在是使用修改後可以分開顯示留言和 pingback/trackback 數目的 Extended Live Archive plugin)3. 安裝 Extended Live Archive Plugin
因為 Extended Live Archive Plugin 使用了一個在 PHP 版本 4.3 或以上才存在的 function "file_get_contents()",所以順理成章使用這個 plugin 的首要條件便是你的 Web Hosting 公司要使用 PHP 版本 4.3 或以上才行。現在 0.9 branch 的最新版本是 0.9.4,首先從官方網頁下載 plugin 的 zip file,中國大陸的朋友們可以從這裡下載,然後再解壓至 wp-content/plugins 目錄,留意正確目錄結構應如下:
wp-content/
...
plugins/
...
af-extended-live-archive/
includes/
af-extended-live-archive.js
af-ela.php
af-elaAddLoadEvent.js
af-extended-live-archive.php
...
...
4. 顯示方式的設定
在未談及這個 plugin 怎樣使用之前,首先談談如何設定 archives 的顯示方式,當使用月份搜尋時,它會使用以下的 HTML 結構來顯示 archives 的。而當使用文章分類搜尋時,它會使用以下的 HTML 結構來顯示 archives 的。<div id="af-ela">
<ul id="af-ela-menu">
<li id="af-ela-menu-0">By month of posting</li>
<li id="af-ela-menu-1">By category</li>
</ul>
<ul id="af-ela-year">
<li id="af-ela-year-2005">2005</li>
...
</ul>
<ul id="af-ela-month">
<li id="af-ela-month-5">May</li>
...
</ul>
<ul id="af-ela-post">
<li id="af-ela-post-...">...</li>
...
</ul>
</div>
由此可見是能夠使用 CSS 來自定顯示方式的,如果對 CSS 不太認識的話,我建議可以往以下網頁參考一下。在 plugin zip file 內含一個 af-ela-style.css 的檔案,大家可以用這個 CSS 檔案作為藍本修改出合自己心意的顯示風格。<div id="af-ela">
<ul id="af-ela-menu">
<li id="af-ela-menu-0">By month of posting</li>
<li id="af-ela-menu-1">By category</li>
</ul>
<ul id="af-ela-category">
<li id="af-ela-category-1">Category #1</li>
...
</ul>
<ul id="af-ela-post">
<li id="af-ela-post-...">...</li>
...
</ul>
</div>
在更改 CSS 後,要怎樣才能加進原來的 theme 中呢?其實有多個方法,我在這裡列出兩個,看看那一個會合你心意。
- 將 af-ela-style.css 檔案內容全部複製至 theme 的 style.css 檔案內
- 將 af-ela-style.css 檔案放在 theme 的目錄中,或者 theme 的子目錄中,例如我把 af-ela-style.css 放在 theme 的子目錄 styles 的話,在 <head> section 內加進以下的語句:
<head .... >
<link rel="stylesheet"
href="<?php bloginfo('template_url'); ?>
/styles/af-ela-style.css" type="text/css" />
</head>
5. Parameters 的簡介
af_ela_super_archive() 這個 function 就是用來顯示 archives 的,這個 function 是可以完全不接受任何 parameter 或接受一個或者多個 parameters 的,沒有提供的 parameter 的情況下會根據各個 parameters 內置的預設值作設定,所有 parameters 的詳細用途、解釋及預設值請參考 plugin zip file 內的 Readme 文件,現在此講解數個 parameters 及當 call function 要留意的地方。- num_entries - 顯示文章數目(1 - 顯示,0 - 不顯示),預設是 0
- num_comments - 顯示留言數目(1 - 顯示,0 - 不顯示),預設是 0
- number_text - 文章數目顯示的格式,容許 HTML 碼,預設是(%),文章數目會取代 %
- comment_text - 留言數目顯示的格式,容許 HTML 碼,預設是(%),留言數目會取代 %
- hide_pingbacks_and_trackbacks - 留言數目不包括 pingbacks 和 trackbacks(1 - 不包括,0 - 包括),預設是 0
- menu_month - Tab page 月份的標題,預設是 By month of posting
- menu_cat - Tab page 分類的標題,預設是 By category
- num_posts_by_cat - 當以文章分類來搜尋文章,對一些 blog 以言,隨時一個分類內的文章數目都有可能超過 100,如果全部顯示出來的話便會太長及太多了,這個 parameter 的作用就是限制在文章分類搜尋時文章顯示的數量,預設是 0(全部),如果不是 0 的話,當顯示了限定的文章標題數目後,最後會顯示一個連結連往 WordPress 的預設文章分類搜尋,連結字眼都可以自行設定的,請參考 parameter cat_more_text
- cat_more_text - 當 num_posts_by_cat 不是 0 時,連結文字的設定,預設是 View all posts in
af_ela_super_archive('menu_month=月份&menu_cat=文章分類')6. 怎樣加 Extended Live Archive Plugin 在 theme 內
之前 Madthiu 亦有這樣的疑問,究竟怎樣加 Extended Live Archive Plugin 在 theme 內?答案就是用 Pages 了,詳細的步驟如下:- 新增一個 Page TemplatePage Template 的格式其實和一般 template 的 PHP 檔案差不多,但最重的是在檔案最開頭的地方有以下語句(以下例子的 Page Template 名叫 "Archives"):
<?php
/*
Template Name: Archives
*/
?> - 把 call af_ela_super_archive() function 的語句放於 Page Template 內裡
例如我希望顯示文章數目(num_entries=1)及顯示留言數目(num_comments=1)的話,語句便像如下:<?php if (function_exists('af_ela_super_archive')) {
af_ela_super_archive('num_entries=1&num_comments=1');
} ?> - 最後新增一篇 Page,選擇使用剛才新增的 Page Template,記著不用輸入任何內容
7. 最後步驟
當然是在 WordPress Admin. Panel 中啟動這個 plugin,否則之前一切所做的都是徒勞無功的:tongue1:。8. FAQ
- Q: 我已經跟著所有步驟完成了,但為何沒有內容顯示出來呢?A: 這個 plugin 是會在 wp-content 目錄內新增一個目錄名叫 af-extended-live-archive,這個目錄內存放著一些 cache files 以便減輕 server 的負擔,所以 wp-content 一定要有寫入權限,及檢查 af-extended-live-archive 目錄是否已經建立。
- Q: Call function 時已經更新 parameters 的值,為何 archives 內容沒有跟著轉變呢?A: 這個 plugin 會在新增/修改/刪除 文章及留言時、改變文章分類時等的情況下更新 cache file,所以在未進行有關動作時,cache file 的內容仍是跟據舊 parameter 值而産生的,當 cache file 更新後才會顯示新內容的。
- Q: 最新的文章為何沒有出現在 archives 內?A: 這個 plugin 的作者為了改善在 Super Archives Plugin 中未來的文章都會出現在 archives 內的問題,特別加進篩選邏輯,但好像因而引致少許問題出現,就是會出現最新文章不能即時出現在 archives 的問題,我已經知會作者,希望新的版本能切底解決這個問題,現今只要過一段時間,該文章便能出現在 archives 內。
8. 後話
這是我第一次寫這麼長的文章,希望不會令人昏昏欲睡吧:tongue1:,如發覺有什麼不明白的地方或者有什麼錯漏的話,請麻煩留言通知,好讓我寫得更淺白及更正錯誤的地方,謝謝。:happy::: Update ::- 2005-08-19 - 修正 Madthiu 提及遺漏 } 的問題,增加講解怎樣將 CSS style 加進 theme 內
- 2005-08-25 - 在第 3 點內新增使用這個 plugin 需要的 PHP 版本資料
- 2005-09-02 - 在第 3 點內增加新的下載點給中國大陸的朋友下載
- 2005-09-27 - 在第 3 點內更新版本 0.9.4 下載
預告
最新版本 0.10beta1 已經推出,除了有效能方面的改善及 bugs fix 外,還支援 Matt's Asides ,及將 parameters 放在專屬的 options page 內,不用在 call function 時提供,因為這個緣故,我遲些會再出一篇教學有關新版本的。
sidekick is just a sidekick... 不要分大細啦... :crazy:
謝謝教學文章~ 希望今晚可以成功! :notify:
我只是開玩笑,想氣氛輕鬆一點而已。:naughty:
這篇很有用,大感謝中!
大家都擁戴 sidekick 就是了,哈哈 :tongue1:
又,今天在公司正悶得打嗑睡,看到你這文章正好提神啊! 又怎會令人昏昏欲睡呢?:clap:
口多提議:
下次有這類顏色少的圖片可考慮用 PNG,無失真壓縮,以你這 2 張 screenshots 為例,PNG 一定比 JPEG 清晰 (因為根本就是原圖) 及檔案會小上很多倍! 不信試試 :wink:
(要支持 opensource 的檔案格式啊 :blush: )
Madthiu:多謝提醒,已經轉了用 PNG,雖然 Web Hosting 的 bandwidth 百份之一也用不到,但是小些當然好些。:happy:
小踢:不成功的話請不要怪罪於我。:ninja:
公爵:希望這篇文章真的可以幫到你。:wink:
Madthiu:你不是已經成功了嗎?真的覺得提神?:tongue1:
再來! 你第 6 點的第 2 分點中的 code...if 後面那花括號多了出來呢...:sweatdrop:
另,消耗 DH 的 bandwidth 可不是問題,看的人覺得頁面 load 得快一點那倒是十分值得的 :clap:
又...那 css 檔要放在哪?:ninja: 我現在是把所有 style 放在 page 的 style tag 內,即是跟 extended live archive 的 caller function 同一頁...:dunno:
Madthiu:已經修正了,多謝提出,proofread 這樣長的文章實在很容易有遺漏:doh:,另外,已經新增了怎樣將 CSS 檔案加進 theme 內。:wink:
好.慢.啊... :cry1:
可能因為我有上三百篇的文章,所以每次開啟 archives 頁面時都會有很長的載入時間呢...:wrysmile:
似乎是 load sidebar 慢多於 load archives 慢呢。
真的呢,剛剛也發現了,剛好今天 hkblogger 那邊有問題,stickers load 不到所以很費時,之後那 meromero blog pet 本身也是花時間的東西
又,現在沒有剛才的慢,但這除了 sidebar 問題外感覺就像 extended live archive 的 caching 已 warm up 好了一樣 :tongue1:
“小踢:不成功的話請不要怪罪於我。”<-因為成功,所以要多謝你!
:inlove::inlove::inlove::inlove::inlove::inlove::inlove::inlove::inlove:
:blush:
:doh:<-佢咪係吳鎮宇?
Sorry , 係陶大宇... 我打錯名... :yucky:
小踢:幸好妳說成功了,否則我都不知躲藏到哪裡去。:tongue1:
想問:
我用左上面提及的 code,做了個新的 page template, 照住 faq1 所講咁 able 左 wp-content write access, 但係一 browser 個 page 仍只得空白一片...... 唔知點解會咁呢? :confused:
TONG:首先要檢查在 wp-content 目錄內是否已經建立了 af-extended-live-archive 目錄,以及看看 af-extended-live-archive 目錄內有否 cache file 的存在。
如果有的話,有可能你的 Page 並不能成功載入,可以嘗試加以下的程式碼在新增的 Page Template 的最後位置。
這句程式碼的作用是作顯示 Testing 字眼,如果你的 Page 能成功載入的話,Testing 字眼應該會顯示出來,如果沒有顯示的話便代表你的 Page 未能載入,有可能因為 .htaccess 的內容出問題。
Page"
可以看到 test 字眼,亦見到 af-extended-live-archive folder 內有 cache file
TONG:我開不到這條 link http://www.hoktong.net/press/view_archives/
呀,今朝出左 post 後,我又搞過一輪,而家可以到個 plug in 了:Pages因為公司無 Firefox, 用 IE 開呢個 page 就無問題,但一轉去 mac 用 safari 就睇唔到,但睇天佑你個又無問題...
同埋想問,天佑你而家個 archives pages 係咪改過 CSS 而做成架?好靚仔, 我就 default 係單調. :cry2:
我用 Firefox 看都沒有問題。:clap:
我的 archives page 是改過 CSS 的,但其實這篇文章的第4 點有提到這個 plugin 的 zip file 已經內含一個 CSS file 的藍本,將它的內容複製至你的 style.css 內已經會得到一個不錯的效果。:wink:
係 FIrefox 睇到咁就好喇。:sweatdrop:
係呀,我再翻炒翻呢篇教學,將個 CSS 用方法 2 加入左, 佢識分欄,但另一個問題又黎,就係係 IE 睇佢兩邊都出左界......... :cold: (成日為左一個 browser 黎 debug 係好煩 :faint: )
唔知有無方法改 CSS / code 黎修正佢呢? 唔該唔該哂 :wink:
不只在 IE,在 Firefox 都出現出界問題,當然這問題可以以修改 CSS 來解決。:wink:
唔該先,咁我搵下個 css code 啦 :sweatdrop::tongue1:
仲有想問下如果係個 page 度可唔可以唔要個 sidebar? :confused:
什麼 sidebar?你在 Page Template 內有 code 顯示 sidebar?
只係因為見到個 page 度右邊度仲見到 sidebar 既灰色, 唔知係咪要係 php 度改呢? :rock:
是需要在 PHP 內改的,首先我想知你用的 theme 是不是用 Default theme 改的?是的話我再教你怎麼改。
係, default theme :worship:
在 header.php 中,應該有以下的 code:
只需要將它改成:將你現在使用的 archives page 名字代替以上的 name of your archives page 就可以了。:wink:
完全搞掂,謝謝總陀地 :worship:
你好!看了这篇文章我也好想装一个,可是我是在中国大陆,这里已经成了世界上最大的局域网,:butbut:政府屏蔽了很多blog,这个插件作者的站点就在其中,所以我无法下载到这个插件,如果可以的话能不能麻烦你把这个插件的最新版放上来让我们下不到的下一下,非常感谢!:cry2:
fallen:你好,我要放工後才可將 plugin 放上,請稍等一下吧。:wink:
:thumb-up1:太感谢了!!!!:laugh:
你好!我都按你说的做了。wp-content\af-extended-live-archive这个文件夹也有存在,但我打开那个页的时候,什么也没有,浏览器报错“代码:0
错误:对象不支持此属性或方法”请问你知道为什么吗?谢谢
对不起,刚才只在IE下做实验,现在在其他浏览器上看就没有问题了,IE不支持他吗?
我看了你的,在什么浏览器下都没问题,请问是怎样做到的?
这是我那一页的地址:http://last.kmip.net/wp/?page_id=52
早上8:00到晚上12:00都开着,有空帮我看一下好吗?谢谢!
fallen:我沒有做過什麼特別的設定已經可以在 IE 中看得到的,為什麼你的不能呢?:really:
我在正體中文 windows xp 下 + IE6 是可看到的, 但在 mac 10.2.x + safari 1.0.x 下就不能看到了, 天佑的, 我自己的也不能看到 :cry2:
:sweatdrop:
打扰一下,感谢你这篇日志。
可是我按照你文章的方法安装了之后,和上面两个人出现一样的情况,调用的header、footer还有echo “testing”;都显示了,唯独Archive没有显示。
不知道改如何去修改? 我的web空间是
php 4.3x + Apache/1.3.33 (Unix) + FreeBSD 4.10-RELEASE-p5 i386
:sweatdrop:
打扰一下,感谢你这篇日志。
可是我按照你文章的方法安装了之后,和上面两个人出现一样的情况,调用的header、footer还有echo “testing”;都显示了,唯独Archive没有显示。
不知道改如何去修改? 我的web空间是
php 4.3x + Apache/1.3.33 (Unix) + FreeBSD 4.10-RELEASE-p5 i386
我添加的page地址: http://xinple.org/?page_id=24
xinple:我看過你的 page 的 source,發覺完全沒有以下這段。
這即表示你應該沒有根據本文第六點內新建一個 template,再將你的 Page 選用這個 template,所以這個 plugin 的結果根本沒有在你的 Page 顯示出來。
題外話:Extended Live Archive 出了新版本 0.10beta1,它除了支援 Matt's Asides 之外,還將所有 parameters 都放在它新增專屬的 option page 內,不用再在 call function 時提供,所以遲些我會以本文為本,修改後再寫一篇教學有關新版本的。
我按照你文章里面的内容做的啊。有新建一个template的文件,内容是上文第六点里面的代码,放在我用的themes文件夹内,然后在新建page的时候,在下面选择了我添加的这个模板,然后才提交的啊。
--------------------------------------
我看上面tong也有类似的情况,不过他重新弄了一下好了。于是我也重新弄了一下。现在页面里面只有你说的
其他什么都没有?到现在这样的情况改怎么办?
重新安装后的page地址:http://xinple.org/?page_id=28
晕倒,上面我的评论里面的:《 div id="af-ela" 》《 / div 》 被屏蔽了。 我上面说在重新弄了之后page的sourse里面有了你说的这个div了。
xinple:實在奇怪,我想知 cache files 是否已經產生了?
在wp-content/下面已经产生了af-extended-live-archive/
并且里面有缓存文件。
我也感觉郁闷,我昨天还重新装了新版本0.10beta1也不行。但是相同的程序别人可以我不行,我想原因应该出在服务器配置上面。我用的空间服务商对php空间设置可以说蛮严格的。可能是为了安全性改动了一些设置。
而且我发现另外一个基于Ajax技术的Live Calendar插件我也不能正常使用。我想问题应该是在空间上。呵呵。
不过谢谢你的帮助。我现在就先放弃这两款Ajax技术的优秀插件了。等以后研究了Ajax技术之后或许会更好一点。
对了,做个友情链接吧^_^:clap:
友情鏈結當然沒有問題吧。:happy:
hi,下载连接好像失效了,我是大陆的:confused:
看了半天没有明白,听说要出新版,那就等新版教程出来后我在研究吧,哈哈,支持你,谢谢你分享。
看了上面的介绍,说和空间配置有关,我的空间http://ffxk.com/php.php
帮我看看可以装不,谢谢。
hi,下载链接好象失效了。我用proxy也访问不了。
请问能给我发一份吗?
Vingel:最新版本已經電郵給你了。:wink:
瘋風:我不敢肯定能不能使用到,因為我的料子都是很有限,你可以試試看。:wink:
请问,我的在wp-content目录下产生af-extended-live-archive目录了,但是里面没有缓存文件,打开那个页面时出现Could not open cache file for years,该怎么办?页面:http://ftp5.e-168.com/shoegazer/?page_id=39
谢谢哦.
Shoegazer:你是否使用 0.10 Beta-r5?我估計有可能是目錄的權限問題,看看 wp-content 內 af-extended-live-archive 目錄的權限,起碼要是 755 (rwxr-xr-x) 的,但有可能需要 777 (rwxrwxrwx) 才行。
权限设置的是755,服务器还不允许设置777,呵呵,我再试试0。9的把,谢谢哦
Showgazer:可以的話最好轉用 0.10 Beta-r5,因為這版本修正了 0.9 版本的一些 bugs 的。:wink:
謝謝你的這篇教學
雖然在一步一步跟著操作時有點搞不懂
但在一陣亂弄之後
居然成功的有東西顯示出來
哈哈,謝謝啦...
裝了但是不能啟用。
Plugin could not be activated because it triggered a fatal error.
頭皮都抓破了