WordPress 網址異動後台設定和更新資料庫

WordPress.ORG

WordPress 修改新舊網址異動,在後台設定更換的新網址僅會更新部份網址,其餘未更新的網址需手動執行 SQL 來更新資料庫相關資料表欄位,兩個動作才算真正完成 WordPress 換網址的更新。

更換網址

  • 新網址:https://footmark.com.tw
  • 舊網址:https://blog.footmark.info

後台設定

登入 WordPress 後台,進入【設定】>【一般】將下述兩個欄位改成新網址後點擊【儲存設定】。

  • WordPress 位址 (網址)。
  • 網站位址 (網址)。

驗證

不少人 (包含腳印哥) 都認為 WordPress 網址異動只要後台設定完成即可,但實際上它僅更新了部份網址,其餘未更新的網址需手動更新資料庫。

檢查文章

開啟編輯一篇有圖片的舊文章會發現圖片無法正常顯示,因為這部份須手動更新資料庫。

檢查資料庫

開啟 phpMyAdmin 使用 SQL 的 LIKE 查詢資料表欄位,還有哪些存在舊網址 https://blog.footmark.info 的資料。

查詢資料表 wp_options 欄位 option_value 還存在舊網址的資料。

SELECT *
FROM `wp_options`
WHERE option_value LIKE '%舊網址%'
    -- 僅查詢與網站相關的條件
    AND (option_name = 'home' OR option_name = 'siteurl');

查詢資料表 wp_postmeta 欄位 meta_value 還存在舊網址的資料。

SELECT *
FROM `wp_postmeta`
WHERE meta_value LIKE '%舊網址%';

查詢資料表 tmpe380d9_posts 欄位 post_content 還存在舊網址的資料。

SELECT *
FROM `tmpe380d9_posts`
WHERE post_content LIKE '%舊網址%';

查詢資料表 tmpe380d9_posts 欄位 guid 還存在舊網址的資料。

SELECT *
FROM `tmpe380d9_posts`
WHERE guid LIKE '%舊網址%';

資料庫

相關資料表與欄位

WordPress 網址異動須更新的資料表與欄位
資料表 欄位 條件
wp_options option_value option_name = 'home'
option_name = 'siteurl'
wp_postmeta meta_value
tmpe380d9_posts post_content
guid

更新資料表與欄位

使用 REPLACE() 來替換新舊網址,執行下述 SQL 即可進行新舊網址的替換。

UPDATE wp_options
SET option_value = REPLACE(option_value, '舊網址', '新網址')
-- 僅替換與網站相關的條件
WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, '舊網址', '新網址');

UPDATE tmpe380d9_posts
SET post_content = REPLACE(post_content, '舊網址', '新網址');

UPDATE tmpe380d9_posts
SET guid = REPLACE(guid, '舊網址', '新網址');

執行完成會顯示影響了多少資料 (就是有多少舊網址被替換),腳印哥這裡更新了 1370 筆。

再開啟編輯一篇有圖片的舊文章即可看到圖片正常顯示,代表更新完成。

參考

在〈WordPress 網址異動後台設定和更新資料庫〉中有 4 則留言

發表留言