酋長問了幾個問題:
對了,在匯入mt的文章時,我發現1.2版支援多作者,它會把匯入的文章自動寫為新作者,要怎麼作才能把它弄成admin帳號的文章,目前我是硬幹,把資料庫內的新作者的資料統統改成像admin一樣。這樣讓秀出來的資料像admin發的一樣。不知可有解決之道?
另外,我發現匯入的文章也沒trackback-url,這是正常的吧。我看你以前的文章也是一樣。可以修嗎?
第一個問題,用硬幹的作法的話,就是將全部的文章作者一次轉換成都是admin發的,請在安裝 WP 的目錄中,新增一個 PHP 檔案,比方說叫foo.php好了,輸入以下內容:
require('./wp-blog-header.php');
$request = "SELECT ID FROM $tableposts";
$posts = $wpdb->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 在將標題以及分類名稱轉換成供網址使用的時候(使用functions-formatting.php檔案中的sanitize_title函數),並不會正確轉換非西方語文,所以如果用中文分類名稱的話,在使用固定網址(permalink)時,並不會正確連到分類頁面上,因此,之前就聽到有人因為這個狀況,所以不開啟 WP 的固定網址功能。不過這個問題可以用折衷的方法解決,那就是, WP (忘記那一版開始)在分類名稱外,另外提供一個分類詳細敘述功能,所以,您可以在分類名稱以及網址上,使用英文,然後在網頁上使用中文。對,就跟Jedi之前所提供的在Movable Type上的解決方法一樣。
要在頁面上,顯示分類敘述而非分類名稱,請修改一下/wp-includes/template-functions-category.php這個檔案,然後,修改 the_category 、the_category_rss 、 get_the_category_by_ID 以及 list_cats 。把裡頭出現 cat_name 的地方,全部換成category_description 即可。
如果您不希望因為升級覆蓋,而拿掉了這些修改過的函數的話,請將這些函數另外改個名字,然後放到 my-hacks.php 檔案中,並且在選項設置中啟用my-hacks.php,在 index.php在將原本使用的函數,改成您修改後的函數即可。
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 似乎還有一些介面中的文字沒有完全拆出來,所以有些地方還是會出現英文,之後應該還會有進一步的修正。
閱讀〈WordPress 1.2中文化〉全文