大量查找和替换WordPress数据库–简单方法

例如,在将WordPress数据库从一个站点(例如,从http://acme.com远程生产站点)迁移到我们计算机上的http://acme.dev本地开发网站后,我们需要执行此操作。

在某些情况下,我们必须更改WordPress网站数据库中的URL

棘手的部分是必须更改数据库中的每个URL实例

WordPress.org托管了许多插件,例如WP DBManagerWP Migrate DB ,并且还有许多第三方工具可让您轻松导入数据库

这些旧的URL最终可能会阻止您的网站正常运行,因此您需要将它们更改为新的URL (在我们的示例中为acme.dev

您可能会在wp_options表中找到旧的URL,并将wp_options设置为siteurlhome选项的值,并且该siteurl可能还嵌入数据库的其他几行和表中。

迁移数据库后,其中的URL 仍指向旧站点 ,在本例中为acme.com

OS X中的Sequel Pro数据库接口
图片:Sequel Pro,搜索数据库值

此时,访问我们的开发站点acme.dev只会导致空白页

那么,我们如何更改数据库中的所有这些URL?

运行SQL查询

通常,人们会运行以下SQL查询,该查询将替换wp_options表中的siteurlhome选项的值。

UPDATE wp_options SET option_value =
replace(option_value, 'http://acme.com', 'http://acme.dev')
WHERE option_name = 'home' OR option_name = 'siteurl';

随后,他们使用另一个SQL查询来替换wp_posts表中(即每一行的post_content列中)所有URL出现。

UPDATE wp_posts SET post_content =
replace( post_content, 'http://acme.com', 'http://acme.dev' );

甚至可能由于查看查询中的简单监督而看到数据库可能如何陷入困境,这真令人不安。

运行这些查询是一个可行的解决方案,但同时却不方便。

利用WP-CLI

这意味着您将需要安装WP-CLI

我们可以做的另一种方法(我发现是更方便的选择)是利用WP-CLI命令行

假设您已安装WP-CLI并可以使用wp命令作为别名,请导航到WordPress站点文件所在的目录。

然后,运行以下命令:

wp search-replace 'http://acme.com' 'http://acme.dev

第一个参数, 'http://acme.com' ,是与第二个,被替换的旧条目'http://acme.dev'

WP-CLI表报告,用于“搜索和替换”操作。

命令行将搜索数据库中的所有表 ,不仅搜索post_content列和wp_options表, wp_options 替换通过命令参数传递的条目的每个实例

我们已经通过一条简单的命令完成了它。

从上面的屏幕截图中可以看到,总共进行了225次替换。

我们还可以通过将表名作为第四个参数传递,从而将操作限制在某个表中,如下所示:

我认为值得一提的是,我们可以使用wp search-replace命令,不仅可以替换URL,还可以使用它存储在数据库中的任何

wp search-replace '.jpg' '.webp' wp_posts

运行上面的命令,它将仅搜索wp_posts (存储我们的内容(帖子,页面等)的表),并将图像扩展名从.jpg替换为.webp

如果您想微调命令,请查看WP-CLI的文档,该文档为您提供了一系列选项 ,可以使用wp search-replace命令执行更高级的操作。

WP-CLI使缠结的SQL操作看起来更加直观,您可以以更方便的方式使用它。


翻译自: https://www.hongkiat.com/blog/mass-find-replace-database-wp/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值