WordPress 2.2

已經出來一陣子,算是op了。
不過說實在每次升級總是要花點時間搞東搞西,沒空出一、二個小時還真不敢亂動。

這次沒有自己做diff了,直接用愛婕那邊的diff檔

一樣手滑一下就升好了,除了我沒在用的widget以外好像也沒有太大的變革,不過還是有注意到兩個地方不一樣。

  1. 編寫文章的preview改成要手按才有了。對頻寬不足的地方是有些幫助,不過其實我比較喜歡本來的。Whatever, I can live with this。
  2. 過去不斷提到的set names patch,這次官方版本有內建了。

新建立的站台還沒試不曉得,如果是過去使用set names patch的,在原有的wp-config.php先加入以下兩行:

define('DB_CHARSET', 'utf8');
define('DB_COLLATE', 'utf8_general_ci');

之後再升級,不需要原本的set names patch,可以直接覆蓋wp-db.php檔案,理論上應該就和我的站目前一樣都ok。
而過去沒有使用set names patch的,就不要加上這兩行,一樣可以維持正常。

WordPress 2.1.3

WordPress 2.0.10和2.1.3修正一些小bug和比較不嚴重的安全性更新。下載2.1.3新版。
閱讀『WordPress 2.1.3』全文 »

建議升級至2.1.2

只要進control panel應該就會看到,有點扯的消息

據說官方網站被入侵,在網站上的2.1.1下載裡面加了後門。

因為提早出來,大部份的更新都不怎麼重要,比較有影響的是修正一個在搜尋時,只打空白或逗號之類的東西,搜尋結果會回傳db error的問題(3722)。另外修正了一個XSS漏洞(3879)。

總之該升就升一升吧。

會吵才有糖吃

我在dreamhost上面,一直有一個奇怪的問題,系統時間會不斷快轉和倒退,秒數會1, 2, 3, 4, 6, 4, 5這樣亂跳。

造成的問題很多,例如說wordpress每頁下面的time elapse極度不準,還會出現負數,這還算小問題,最大的問題是這樣會造成常常一個cron item會被跑二次甚至三次。結果我cron只好寫成跑script,script裡面再搞個簡單的lock避免跑兩次,實在很麻煩。

本來以為是他跑在vmware還是什麼東西下,時間才會亂掉,後來最近在做其它的事的時候想到這件事,上網查了一下這個東西,發現也有別人發生,是linux kernel的問題,而且已經修正了。看到最後結論還是去找客服吧,回信速度倒是非常快,不過第一次他沒修好,第二次才真的換成正確的kernel。

才疏學淺不曉得理由,不過總之是修正了,目前看起來相當正常,wordpress裡面出現的時間數字也合理多了。這問題從一年前開始用就是這樣,似乎很多server都這樣,結果他也沒有做普遍性檢查,大概一個人報才修一台吧?

總之就是會吵才有糖吃…。

live search

之前就一直在用的live search plug-in,我想應該很多人都曉得在IE下面打中文永遠都是No Results.

前幾天把部落格上的prototype.js從1.5.0rc0(幾乎所有的人都還在用)換成1.5.0 release,script.aculo.us升到1.7.0。那時候沒啥感覺,只覺得似乎和原本的script都還相容,prototype.js變肥很多(53.xkb->70kb),再來就沒去理他了。

結果今天無聊在試驗的時候,發現在IE下面打中文竟然搜尋得到東西了。看來新版有針對在IE下的utf8問題做了修正吧。

沒啥大不了就是了,就做個筆記。

Updated: 剛剛發現了,管理後台和1.5.0 release不太相容,comment管理的AJAX會失效。所以後台目前還是要用rc0,前台後台得分兩份了。目前看wordpress trac他們打算2.2版才會修正這些問題。

FancyTooltips re-fix

FancyTooltips在Firefox下會顯示雙重tooltip是個老問題了,而之前我也弄了個修正,但是因為舊的修正和IE7相處不太愉快,最近一直在想辦法改良它。

今天剛好在試Firebug,比js debugger好的地方是,當hover的時候,如果firebug是處於dock狀態,滑鼠不會被focus out--於是難以debug問題就解決了。

問題的癥結點在於,在呼叫setContainerContent()的時候,oContainer有時候並不是空的,真正理由不曉得,可能是某些function的重覆進入。總之清掉就沒事了,修正方法如下:

var oOutputNode = document.importNode(oXMLDoc.documentElement, true);
removeContainerContent(); //增加這一行
var oChild = oOutputNode.firstChild;

照例放上新的修正

這個修正依然包含之前wordpress中<ins> <del>時間錯誤的問題。再加上一個IE透明度的小修正(css)。

注意:FancyTooltips以MIT License方授權。

Live Sync 1.0

基本上把所有想得到的功能都做完了,改了不少,原來MSN Sync的骨架剩下的也不多了。來點新氣象,換名字叫1.0吧。說明也已經更新好,如果沒有什麼大問題的話應該不會再常常更新了吧。

MSN Sync Modified 2.2 -> Live Sync 1.0更新事項:

  1. 增加選項可選擇全文同步或切到<!–more–>為止。可自定另一個內文範本供截斷文章時使用。
  2. 修改時間功能,能真正傳出文章的時間。
  3. 增加一個同步所有文章的按鈕。(因為文章判斷的一些問題,可能只在wordpress 2.1之後有效)
  4. 增加可以選擇不想同步的類別。

下載新版

本來時間是送錯的,所以Live Space在newpost的時候永遠幫你填目前時間。目前可以正確送出在wordpress上面張貼的時間。

而修正時間問題後終於能把同步所有文章的功能加入(不然同步所有文章時間都是現在,很怪)。美中不足的是,因為Live Space日期彙整產生方式比較特殊,就算你同步了舊文也不會出現舊月份的彙整。

p.s: 已經在用的人用Sync All existing Posts功能理論上也是安全的,之前有儲存到id的文章會用edit去修改。若有用到很早期版本msn sync的人,因為一開始id沒有儲存到,就有可能出現重覆文章的問題。

Update: 重新包了一包,也submit到wp-plugins.net上去。新包好的版本檔名改過。舊版使用者請先deactive plug-in,刪除wp-msnspace.php,放入wp-livesync.php之後再重新啟動plug-in。

MSN Sync Modified 2.3beta

上一版基本上做錯了…腦袋一時打結,趕快更新一下功能正常的版本。
主要修正:

  • 修正沒有more時全篇文章會消失的問題。2.2 測試的時候其實是正常的,但是正式版忘了判斷是否根本沒<!--more-->tag的存在。所以如果沒有<!--more-->整篇文章會不見。
  • 因為正常來說是要有<!--more-->的時候才會有閱讀全文的連結。所以新增一個給more用的template,當文章中有<!--more-->才會予以切斷及增加<!--more-->的連結。會改用另外一個範本。若之前抓過2.3beta的人,在b2不懂怎麼用的話可以按reset option參考新範本怎麼做。

非功能性修正:

  • 修正送出的時間,本來是送目前時間,改為送出wordpress中文章的時間。可惜live spaces完全不理時間的樣子,改了等於沒改。
  • 修正無法通過xhtml 1.0驗證的問題。

新版下載

MSN Sync Modified 2.2

基本上是跳票了很久,同步所有文章的功能也還沒弄,不過還是稍微改了兩個功能出來。

  1. 因為MSN沒有more的功能,所以文章有時候會很長。目前MSN Sync當然也沒辦法克服這個問題,不過可以「模擬」這個動作。方法就是在同步的時候切至<!--more-->標籤,然後在文末再增加原文的連結。這是一位網友的構想,我只是稍做修改。
  2. 無法自由選擇單篇文章要不要同步,應該是不少人的困擾,開關sync頻繁也是一種麻煩。理想中應該要加一個option在write裡面,但是實際上很難辦到。這一版用簡單的方法先試著達成這個目的,只要在不想要同步的文章加上<!--stopsync-->這樣的html註解,該篇文章就不會被同步出去。下次會試著寫出可以選擇想要/不想要被同步的類別。

More功能的content範例,請自行修改成所需的樣子:
<div>原始網址:<a href=[PERMALINK] title="[TITLE]"> [PERMALINK] </a></div>
[POST]
<a href=[PERMALINK] title="[TITLE]">閱讀"[TITLE]"全文>></a>

下載2.2版詳細安裝說明。

WP-Cache+SK2

最近用了WP-Cache,然後發現他和Spam Karma2相處不愉快。(好像很多人都和sk2相處不愉快啊…)
閱讀『WP-Cache+SK2』全文 »