WordPress 搬家修改網址處理方式

本來認為應該很簡單可以解決, 但是發現還是有很多奇怪的地方, 記錄一下目前測試修改後正常運作的處理方式

  • 原本網址為 www.abc.com 要更改成 www.xyz.com
  • 將 /var/www/html 內的 wordpress 檔案全部複製到新網站內
  • 將原本的 wordpress 資料庫匯出, 匯入新網站的 MySQL 內
  • 主要修改資料庫設定, 大概修改如下:
    <?php
    define('DB_NAME', 'wordpress');
    define('DB_USER', 'wordpress_user');
    define('DB_PASSWORD', 'wordpress_password');
    define('DB_HOST', 'localhost');
    :
    // Single-Site (serves any hostname)
    // For Multi-Site, see: https://www.turnkeylinux.org/docs/wordpress/multisite
    define('WP_SITEURL', 'http://'.$_SERVER['HTTP_HOST']);
    define('WP_HOME', 'http://'.$_SERVER['HTTP_HOST']);
    :
  • 很多文章說要改 WP_SITEURL 與 WP_HOME 但原本的設定似乎沒問題
  • 主要是針對 wp_posts 這資料表的內容進行修正, 這樣就可以不需要後台針對每個頁面檢查與修改, SQL 語法如下:
    UPDATE wp_posts
    SET post_content = REPLACE(post_content, 'www.abc.com', 'www.xyz.com')
    WHERE post_content LIKE '%www.abc.com%';
    
    UPDATE wp_posts
    SET guid= REPLACE(guid, 'www.abc.com', 'www.xyz.com')
    WHERE guid LIKE '%www.abc.com%';
    
    UPDATE wp_options
    SET option_value = REPLACE(option_value, 'www.abc.com', 'www.xyz.com')
    WHERE option_value LIKE '%www.abc.com%';
  • 因為主頁是指定靜態網頁, 所以系統在設定時會將原有的網址寫入資料庫, 導致移轉後主頁會自動跳至舊網址
  • 進入後台 → 設置 → 閱讀 → 您的主页显示
  • 切回 您的最新文章 → 保存更改
  • 再切回 一個靜態頁面 → 指定主頁 (首頁) → 保存更改
  • Elementor → 工具(Tools) → 替換網址 (Replace_URL)
  • WP Floating Menu → 選擇已經建立的項目 → Edit
  • 針對每個 Menu Structure 進行檢查 → Custom Link → Target Link 大概類似下圖

參考網址

  • tech/wordpress_move.txt
  • 上一次變更: 2019/04/10 13:35
  • jonathan_tsai