因為要更換主題,想把原來的網站搬到本地進行測試,由此接觸到 WordPress 搬家。這其間碰到大量問題,還好有搜尋引擎的幫助。最終把這些問題一一解決,在這裡寫個總結。

WordPress 搬家包括 2 部分:WordPress 系統程式和 MySQL 資料庫。搬家有域名目錄不變只改變空間、域名目錄改變空間不變和域名目錄與空間都改變 3 種情況,這裡講的是域名和空間都改變的情況。前 2 種情況相對比較簡單,可以參照域名和空間都改變的情況進行 WordPress 搬家。方法如下:

WordPress 系統程式

把網站根目錄下的全部檔案用 FTP 軟體下載到本地,修改其中的 config.php 檔案。注意最好以 utf-8 無 BOM 格式編輯儲存,推薦使用 notepad++文字編輯器。不然可能出現 「Waring:Cannot modify header information 。」 的錯誤。

WordPress搬家

特別注意如果原網站或新網站安放在二級目錄時,還要修改其中的.htaccess 檔案。 WordPress 在安裝時,會根據網站具體的目錄結構產生一個.htaccess 檔案。該檔案與 URL 重定向有關,直接關係到網站虛擬重寫目錄及網頁的訪問是否正常。 ZCMHI 在將網站從根目錄搬家到本地二級目錄時,就遇到首頁顯示正常,但是一些虛擬目錄和網頁無法訪問的情況。比如 localhost/zcmhi/archives/下的所有分類目錄和網頁都無法訪問。以 WordPress 從根目錄搬到二級目錄為例,修改.htaccess 檔案的方法為在 RewriteBase 和第二個 RewriteRule 項新增二級目錄。

原網站.htaccess 檔案

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ -[L]
RewriteCond %{REQUEST_FILENAME}!-f
RewriteCond %{REQUEST_FILENAME}!-d
RewriteRule ./index.php [L]# END WordPress

修改後.htaccess 檔案

# BEGIN WordPress
RewriteEngine On
RewriteBase /zcmhi/
RewriteRule ^index.php$ -[L]
RewriteCond %{REQUEST_FILENAME}!-f
RewriteCond %{REQUEST_FILENAME}!-d
RewriteRule ./zcmhi/index.php [L]
# END WordPress

具體應根據實際情況進行更改。最後將所有檔案上傳到新的主機空間。這裡指全部檔案,是為了使搬家後的網站與原網站完全相同。

如果遇到後臺登陸一片空白或出現 「Waring:Cannot modify header information 。」 等後臺無法登陸前臺無法顯示的情況,比如 ZCMHI 在登陸後臺時由 All in one seo pack 外掛造成的錯誤,如圖。這時可以透過 FTP 軟體進入網站目錄把外掛或主題目錄改名,比如把 plugins 改為 plugin0,themes 改為 themes0(主題無法呼叫時系統會恢復預設主題),登陸後臺後再透過 FTP 改回來。出現這種情況的原因多為第三方外掛或主題與 WordPress 不能完全相容。

WordPress搬家

MySQL 資料庫

登入原網站資料庫管理介面,一般 phpMyAdmin 。進入對應的資料庫,對 「結構」 項全選,點選匯出 (如圖),其他設定預設就行,儲存到本地。

WordPress搬家

也可以使用 WP-DBmanager 外掛備份資料庫後下載到本地。接著用文字編輯器以 utf-8 格式開啟編輯。查詢原來域名,全部替換為新的域名目錄。也可以在匯入到新的資料庫後,修改表 wp-options 中 siteurl 和 home 項為新域名。

再到新的資料庫管理介面,匯入資料庫,注意以 utf8_general_ci 匯入。

WordPress搬家

至此 WordPress 搬家基本結束,可能需要登入 WordPress 後臺對一些地方進行適當調整。

一小點建議:由於安裝的外掛及主題可能並非為 WordPress 官方開發,因為相容性問題在搬家過程中可能引起這樣那樣的問題。建議 WordPress 搬家前停用所有的外掛,安裝了快取外掛要清除快取,並恢復到預設主題。在搬家結束後登陸 WordPress 後臺進行還原。