下载和上传CSV是一项艰巨的任务,它迫使您手动执行一系列步骤,这很容易导致人为错误(和打字错误)。我的建议是做一些可以在DB的本地副本中进行本地测试的事情。要遵循的步骤:
做一个database dump 使用mysqldump
工具和使用scp
到copy it to you locally
启动本地WP安装WP CLI, WP命令行运行程序,本地运行wp post update
使用必要的本地测试命令,通过重命名保存live数据库,将数据库的本地副本上载到登台服务器,再次测试调整后的数据库您的live数据库,确保您有一段时间没有人摆弄数据库(使您的站点进入维护模式!)。Notes:
A) 如果您知道MySQL服务器的IP和端口,您可以直接连接到它并将转储下拉到您的计算机,而无需SSH连接到远程:mysqldump -P3306 -h127.0.0.1 -uroot -pYourPassWord databasename > ./dbdumps
将其转储到当前目录的子文件夹中(pwd
) 已命名dbdumps
. 你应该提前创建它。B) 假设您有可用的Bash(如果没有,命令行–sh仍然足够),您可以使用如下脚本。将其添加到名为convert.sh
. 另外,假设您在本地安装了WP CLI(或您的Vagrant机器、Docker容器,无论您在本地使用的是什么开发环境):
#!/usr/bin/env bash
for id in $(wp post list --field=ID);
do
wp post update $id --post_name=foobar
done
由于你没有详细说明你的帖子slug的转换,你必须找到一种方法来调整foobar
在上述示例中。上有几十个Stackoverflow答案tag:bash 主题以帮助您。像往常一样sed
for the rescue –世界上没有什么东西不能用awk
和sed
在shell脚本中。您可以从终端运行如下所示的shell脚本:
sh convert.sh
试一试,失败,冲洗,然后重复。我写的都是我的想法,所以你必须测试一下。最好复制一份本地数据库,这样就可以再次将其丢弃。