标签搜索

WordPress 查找并替换数据库中的 URL 或文本

摸鱼仔
2024-01-16 / 0 评论 / 110 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年03月13日,已超过189天没有更新,若内容或图片失效,请留言反馈。

有的时候,我们可能需要更换 WordPress 网站的域名,或者需要批量更换网站中的某些文本内容。这时,我们可以通过 Adminer进行可视化的操作,或者通过 shell 命令行执行 SQL 查询

更换域名
无论是更换域名,还是从 http:// 更改为 https ://,我们都可以使用 MySQL 的 replace功能,来替换数据库中的 URL。

如果我们要将 WordPress 网站迁移到不同的域名,例如,从域名old_domain.com迁移到域名new_domain.com。或者将数据库中所有http://old_domain.com替换为https://old_domain.com,我们可以执行下面的 SQL 语句:

wp_options 表

wp_options 表是 WordPress 配置表,在home和siteurl字段中,可以配置网站的 URL 。我们可以执行下面的语句来替换。

UPDATE wp_options SET option_value = replace(option_value, 'old_domain.com', 'new_domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';

wp_posts 表

wp_posts表的post_content字段中的包含所有文章内容。如果文章中有指向其他文章的内部永久链接,需要替换该表中的链接 URL。

执行下面的 SQL 语句:

UPDATE wp_posts SET post_content = replace(post_content, 'old_domain.com', 'new_domain.com');

清除 标题栏的空格:

UPDATE wp_posts SET post_title = replace(post_title, ' ', '');

在数据库中文章表数据表为:wp posts

表字段如下:
ID(文章ID)
post author(文章作者名,我想可以是为用户名,也可以是用户ID)post date(文章发布日期)
post_date_gmt(文章发布日期,格林威治时间)
post content(文章内容)
post_title(文章标题)
post exerpt(摘录)
post status(文章状态,publish/auto-draft/inherit)comment status(是否开启评论,默认值为open,打开)ping status
post password(文章密码,如果加密的话,需要输入对应的密码才能打开post name(文章缩略名)
to_ping(ping的链接)
pinged(已经PING过的链接)
post modified(文章修改时间)
post modified gmt(文章修改时间,格林威治时间)post content filter
post parent(父文章,主要用于page)
guid
menu order(排序ID)
post type(文章类型,post或page)
post_mime_type(MlME类型)
comment count(文章评论总数)

wp_postmeta 表

wp_postmeta表包含所有的属性和自定义字段,例如 ACF (高级自定义字段)中的meta_value字段。如果自定义字段中包含旧的链接,也需要在此处替换它们。

UPDATE wp_postmeta SET meta_value = replace(meta_value, 'old_domain.com', 'new_domain.com');

wp_comments 表

wp_comments表包含所有的文章评论内容,其中也可能包含指向其他文章的旧链接。如果有,可以执行下面的语句更改:

UPDATE wp_comments SET comment_content = replace(comment_content , 'old_domain.com', 'new_domain.com');
0

评论 (0)

取消