域名迁移过程中的主题修改选项问题

时间:2019-07-30 作者:Louis D.

我想将我的开发wordpress站点迁移到生产域。为了成功迁移,我找到并替换了以前出现的所有url(http://localhost) 到新的(https://mywebsite.com).问题是旧的URL不能在字段中直接替换option_value 属于theme_mods_{your theme name} 在表格中wp_options 因为其中的数据是序列化的。

如何在不破坏主题设置的情况下用新URL替换旧URL?

2 个回复
最合适的回答,由SO网友:Louis D. 整理而成

可以使用maybe_unserialize(get_theme_mods())get_theme_mod() WP功能并遵循以下步骤:

在WP安装的根文件夹中创建一个php文件(路径与wp-load.php).

require_once("wp-load.php");
$r = maybe_unserialize(get_theme_mods());
foreach ($r as $k => $v){
    if(!empty($k)){
        $ListOptions[] = $k;
    }
}
foreach($ListOptions as $option){
    $str = get_theme_mod($option);
    $str = str_replace(\'http://localhost\', \'https://mywebsite.com\', $str);
    $str = str_replace(\'http:\\\\/\\\\/localhost\', \'https:\\\\/\\\\/mediadroit.fr\', $str);
    set_theme_mod($option, $str);
    var_dump(\'|\'.$option.\': \'.get_theme_mod($option).\' ===> \'.$str);
    echo "\\n";
}
<执行脚本

SO网友:Tom J Nowell

使用官方CLI工具:

wp search-replace \'http://localhost\' \'https://yoursitecom\'
它将自动反序列化任何帖子元、选项、主题mod等,并调整它们以匹配新的URL。

但从根本上讲,在数据库中存储图像帖子和资产的URL是一种不好的做法。而是存储post ID,这个问题就会消失

相关推荐

Weebly Migration to Wordpress

我有一些Weebly页面,我想迁移到我为Wordpress设置的新域。我尝试了几种方法,例如导出XML文件或使用CMS2CMS,但它们似乎都需要FTP访问,这会不礼貌地阻止用户访问。有人对Weebly迁移到Wordpress有什么建议吗?这将节省我从零开始格式化页面的大量工作。非常感谢。