在WordPress中将db从任何源传输到另一个源时,需要更新一些键表,以替换为主机的路径名和域。
这里有一个我在手动执行此操作时经常使用的方便的SQL代码段。
-- Avoid updating serialized strings with "NOT LIKE \'%{%\'"
UPDATE wp_options SET option_value = REPLACE(option_value, \'//olddomain.com\', \'//newdomain.com\') WHERE option_value NOT LIKE \'%{%\';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, \'//olddomain.com\', \'//newdomain.com\') WHERE meta_value NOT LIKE \'%{%\';
UPDATE wp_posts SET post_content = REPLACE(post_content, \'//olddomain.com\', \'//newdomain.com\') WHERE post_content NOT LIKE \'%{%\';
UPDATE wp_posts SET guid = REPLACE(guid, \'//olddomain.com\', \'//newdomain.com\') WHERE post_type = \'attachment\';
-- File paths
UPDATE wp_options SET option_value = REPLACE(option_value, \'/home/old/path\', \'/home/new/path\') WHERE option_value NOT LIKE \'%{%\';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, \'/home/old/path\', \'/home/new/path\') WHERE meta_value NOT LIKE \'%{%\';
然而,在大多数情况下,我使用wp-sync-db来处理这个问题。可在此处找到:
https://github.com/wp-sync-db/wp-sync-db但是,如果您不熟悉SQL querie,我强烈建议您使用上面的插件。