February 2nd, 2007

改變一下判斷一篇 post 是不是 page 的方法…

在我的 blog 中,Archives 是一篇 page 而不是 post (文章才是 post),我在 Archives 裡用了 [tag]Extended Live Archive[/tag] 這個 plugin 來弄出全文列表的效果,但我突然發現它居然把我的 page 也列進去了,查了一些資料才發現原來 [tag]WordPress[/tag] 2.1 在處理 page 的方式有所不同(詳情見)。

在 WP 2.1 之後 page 也可以有 publish、draft、private 的狀態,在 2.1 以前只有 post 才會有這三種狀態,所以很多 plugin 都是用

post_status = 'publish'

來表示 post,但在 2.1 之後,post_status = 'publish' 也可能是 page ,而資料表中多了一個 posty_type 的 column,WP 2.1 之後就用

post_type = 'page'

來表示 page ,這樣的改變就會讓一些 plugin 在判斷 post/page 時產生 bug。

於是我就動手小改了一下 ELAaf-extended-live-archive-incmVFRaf-extended-live-archive.php 這兩個檔案,找到這兩個檔案中出現 post_status = 'publish' 的地方,在它的後面(下面?)加上

AND post_type != 'page'
(或是 AND p.post_type != ‘page’ 看原本怎麼寫)

這樣就可以判斷正確了!

 

歷史上的今天

文章分類: 資訊科學, 電腦軟體 標籤:
目前有 5 則留言
  1. 終極邊疆BLOG:

    被 Dreamhost 逼上 Wordpress 2.1…

    DreamHost 將於 2/19 再次試著把伺服器上的 PHP5 升級到 5.2.2。根據公告的說法,這次的升級會影響到 2.1 版以前的 WordPress:
    - Wordpress versions under 2.1
    Any version of wordpress under 2.1 will have problems after the…

  2. 所以是一定得上 Wordpress 2.1 囉 at wILliAm’s bLog:

    [...] ericsk’s blog » WordPress 2.1+ 的 page 問題:解決 Extended Live Archive 會顯示 page 的問題。 [...]

  3. 升級到 Wordpress 2.1.1 於 憑你的智慧,我很難跟你解釋。:

    [...] ericsk’s blog » WordPress 2.1+ 的 page 問題 SILENCE Blog » Blog 文章彙整 » 升級至 Wordpress 2.1 終極邊疆BLOG » 被 Dreamhost [...]

  4. Zhang:

    Hi, 我升级到2.1后,每次发表文章后,Extended Live Archive不更新Cache,你遇到同样的情况了吗?怎么解决的?

  5. ericsk:

    To Zhang:
    我沒有遇過耶,會不會是要執行比較久的關係?
    還是你有 log 可以看到一些錯誤或警告訊息呢?

我要留言
(必填)
(必填)