酋長問了幾個問題:
對了,在匯入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'");
呵 :-),大概了解這段碼的意思,不過我試著用的時候,發現上面原始碼中的’ 或” 符號不大正確。修一下吧。 🙂
修改後再執行之也發現這個錯誤:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ‘,’ or ‘;’ in /home/wordpress/public_html/foo.php on line 8
不知這是怎樣? 看來是第八行也就是:
$wpdb->query(“UPDATE $tableposts SET post_author = 1 WHERE ID = ‘$ID’”);
這一行有執行上的問題。
引號之所以不正確,是因為WordPress會自動轉換引號,所以用的時候要稍微注意一下,另外,這個錯誤訊息,應該是 echo $ID.”<br />”; 這行沒寫好造成的,寫的時候忘記在 $ID 以及 “<br />” 之間加上一個句號。不過這一行主要是拿來看有沒有輸入用的,如果不需要的話,直接把這行拿掉也沒關係。
成功了。感謝。;-)
wordpress在轉換引號上,好像不是很友善?
對了,剛測試過pivot的中文修正( pivot110cjk.tar.gz 這個檔案,韓國人作的吧),發現還是問題多多,主要出現在許功蓋亂碼及中文搜尋找不到的問題。
作者說要等pivot新版才能修了。