WordPress 模板設計的一些小技巧

在將WordPress安裝完成之後,通常您應該都會對系統預設的外觀不滿意,如果您只是想要修改外觀的話,那麼通常只要修改 CSS 即可。如果您懶得自己修改 CSS 樣式的話,在今年一月左右,WordPress 官方曾經舉辦了一場樣式表設計大賽,您可以從這個活動的網頁中,下載參賽以及得獎作品,而如果您想要在同一個網站上,使用多重樣式的話,那麼您應該也會安裝Alex King所開發的WP Style Swithcer這個外掛程式。在這篇文章中,主要在介紹怎麼樣在WordPress中,製作在首頁、分類彙整、單篇彙整以及各種不同日期彙整方式狀況下,呈現不同的頁面外觀的方式。

Continue reading

WordPress 1.2中文化的Bug

我是白痴。如果您像yus一樣,遇到在使用WordPress 1.2的時候,所有的迴響留言都變成必須要審核的狀況時,請您務必看這篇。之前做1.2中文化的PO檔的時候,寫錯了一行,在1463以及1464行的地方:

msgid “Hold a comment in the queue if it contains more than %s links. (A common characteristic of comment spam is a large number of hyperlinks.)”
msgstr “如果一則迴響留言中超過 %s 個超連結,就判斷為是垃圾廣告留言,必須審核通過才可以發表。(垃圾廣告留言)的特色就是通常會有很多的超連結。)”

我之前把當中的 %s 誤寫成 $s(我到底在幹麼),結果造成應該在選項設置頁面中,應該會出現的一個輸入框不見了,而造成在更新「討論」部份的迴響留言時,會認為在留言中超過「0」個超連結的留言,都被視為是垃圾迴響,必須要通過審核。所以,要解決這個問題,請重新下載中文翻譯MO檔,然後進入「討論」設置頁面,修改相關設定(建議用預設值,超過5個超連結設為垃圾迴響)。

另外,如果是poEdit方面的問題,我只能說,我不清楚,我沒在用poEdit。

WordPress 1.2 中文翻譯檔下載位置更改

這應該是很多人都已經知道的事情,WordPress 1.2正式版已經釋出了。之前供RC 1以及RC 2版本所使用的中文語系檔案,在正式版上經測試可以順利使用。另外,我修改了 WP 1.2 中文語系檔案的下載位置,放到了中研院資訊所的 OpenFoundry 的計畫頁面上:

下載MO檔
下載PO檔

如果連結失效的話,可能是我之後又更新了檔案,請上下載頁面查看。

中文化說明請見之前的這篇 〈WordPress 1.2中文化 〉

另外補充一下,有一些WP的Plugins,如Comment Preview以及Google Redirect先不要裝,在中文使用方面會有問題。

在從Movable Type轉換成WordPress之後

酋長問了幾個問題:

對了,在匯入mt的文章時,我發現1.2版支援多作者,它會把匯入的文章自動寫為新作者,要怎麼作才能把它弄成admin帳號的文章,目前我是硬幹,把資料庫內的新作者的資料統統改成像admin一樣。這樣讓秀出來的資料像admin發的一樣。不知可有解決之道?

另外,我發現匯入的文章也沒trackback-url,這是正常的吧。我看你以前的文章也是一樣。可以修嗎?

第一個問題,用硬幹的作法的話,就是將全部的文章作者一次轉換成都是admin發的,請在安裝 WP 的目錄中,新增一個 PHP 檔案,比方說叫foo.php好了,輸入以下內容:


get_results($request);
foreach ($posts as $post) {
$ID = $post->ID;
$wpdb->query("UPDATE $tableposts SET post_author = 1 WHERE ID = '$ID'");
echo $ID."
";
}
?>

然後,開啟瀏覽器,在瀏覽器中輸入foo.php的網址,執行這個 PHP 程式,就一次轉換完了。呵,這樣才叫做硬幹。

第二個問題, WP 跟 MT 不同, MT 會在資料庫中另外使用一個欄位,儲存要接受 TrackBacks 的代號, WP 中要出現允許通告的網址,只要打開通告權限即可,而出現第二個問題的原因,就是在轉換過程中,沒有把之前的文章的通告權限,解決第二個問題的方法,就是一次全部打開所有文章的權限,也就是,就是將上面 $wpdb->query那行,改成


$wpdb->query("UPDATE $tableposts SET ping_status = 'open' WHERE ID = '$ID'");

WordPress 中文分類名稱

因為 WordPress 在將標題以及分類名稱轉換成供網址使用的時候(使用functions-formatting.php檔案中的sanitize_title函數),並不會正確轉換非西方語文,所以如果用中文分類名稱的話,在使用固定網址(permalink)時,並不會正確連到分類頁面上,因此,之前就聽到有人因為這個狀況,所以不開啟 WP 的固定網址功能。不過這個問題可以用折衷的方法解決,那就是, WP (忘記那一版開始)在分類名稱外,另外提供一個分類詳細敘述功能,所以,您可以在分類名稱以及網址上,使用英文,然後在網頁上使用中文。對,就跟Jedi之前所提供的在Movable Type上的解決方法一樣。

要在頁面上,顯示分類敘述而非分類名稱,請修改一下/wp-includes/template-functions-category.php這個檔案,然後,修改 the_categorythe_category_rssget_the_category_by_ID 以及 list_cats 。把裡頭出現 cat_name 的地方,全部換成category_description 即可。

如果您不希望因為升級覆蓋,而拿掉了這些修改過的函數的話,請將這些函數另外改個名字,然後放到 my-hacks.php 檔案中,並且在選項設置中啟用my-hacks.php,在 index.php在將原本使用的函數,改成您修改後的函數即可。

WordPress 1.2中文化

WordPress官方在19日推出推出1.2 RC2,我目前還沒有感覺出1.2 RC2 與 1.2 RC1 之間的差別,不過我倒是已經弄好了1.2版的正體中文語系檔。如前所述, WP 1.2 不用做特別修改,便可以直接使用中文,不過中文化之後,可以使用中文的管理介面以及網站畫面。要將 WP 1.2中文化的方法相當簡單,首先,請先下載 zh_TW.mo,然後,把這個檔案放到 /wp-includes/languages/底下,如果沒有 languages 目錄的話,請手動新增一下。

然後,修改/wp-config.php,找到這一行:

define ('WPLANG', '');

改成:

define ('WPLANG', 'zh_TW');

照理說,這樣就可以完成介面的中文化。不過 1.2 RC1 以及 RC2 ,似乎都還有一些問題,這個問題在官方網站上也有人反應過,在許多的管理介面上,並沒有辦法妥當傳入 WPLANG 參數,所以我們手動改一下/wp-includes/wp-l10n.php,找到第十二行,改成

$locale = 'zh_TW';

這樣就可以了。而RC2 似乎還有一些介面中的文字沒有完全拆出來,所以有些地方還是會出現英文,之後應該還會有進一步的修正。

Continue reading