我發現改變siteurl和家庭網址從來沒有工作。文章中經常會有鏈接不能遷移,特別是圖片資源鏈接。 執行此操作的最佳方法是在MySQL中。我使用的標準查詢是:
START TRANSACTION;
SET @OLDSITE = 'http://oldsite.net';
SET @NEWSITE = 'http://newsite.com';
UPDATE wp_posts SET guid = replace(guid, @OLDSITE,@NEWSITE);
UPDATE wp_posts SET post_content = replace(post_content, @OLDSITE, @NEWSITE);
UPDATE wp_posts SET post_excerpt = replace(post_excerpt, @OLDSITE, @NEWSITE);
UPDATE wp_links SET link_url = replace(link_url, @OLDSITE, @NEWSITE);
UPDATE wp_links SET link_image = replace(link_image, @OLDSITE, @NEWSITE);
UPDATE wp_postmeta SET meta_value = replace(meta_value, @OLDSITE, @NEWSITE);
UPDATE wp_usermeta SET meta_value = replace(meta_value, @OLDSITE, @NEWSITE);
UPDATE wp_options SET option_value = replace(option_value, @OLDSITE, @NEWSITE);
COMMIT;
請確保在執行此操作之前先執行備份!
整個陳述被封裝在一個事務中,所以你不會得到一半的工作。如果一個聲明失敗了,它可能是一個真正的痛苦,一些域名被遷移而另一些域名不被遷移。如果您無法訪問交易,則可以刪除START TRANSACTION和COMMIT陳述並首先進行測試運行。
理論上這可以打破postmeta中的序列化數據。在實踐中,這很容易解決。它可能會破壞你的菜單和其他一些結構化數據,但這很容易解決。
注:此SQL事務也是很好的HTTP更改爲HTTPS爲好。你只需要添加:
define('FORCE_SSL_ADMIN', true);
到你的wp-config.php。
也許這有助於:http://codex.wordpress.org/Moving_WordPress – csanonymus
@csanonymus感謝您的鏈接! –