Wordpress Mysql数据库查找和替换 - 仅替换基于父级的内容

时间:2014-03-21 17:29:02

标签: php mysql sql wordpress

不熟练使用MySQL命令。我习惯在MySQL中运行类似于

的命令
UPDATE wp_posts SET post_content = REPLACE (post_content,'Item to replace here','Replacement text here'); 

用于查找旧网址和各种小内容。但是这个命令搜索我的所有帖子,并查找/替换。我想要一个只根据父级查找/替换内容的参数。我正在尝试以下方面的效果:

UPDATE wp_posts 
SET post_content 
WHERE post_parent = 4860
= REPLACE (post_content,'old content','new content');
没有太多运气。我做错了什么?

2 个答案:

答案 0 :(得分:1)

  

UPDATE wp_posts SET post_content = REPLACE(post_content,'old content','new content')WHERE post_parent = 4860;

答案 1 :(得分:1)

这是我用于在标准WordPress安装中更新域的常见sql脚本。我认为这是你正在努力做的事情吗?

- 更新常用表格:

UPDATE wp_usermeta SET meta_value = replace(meta_value, 'foo.local.com', 'foo.com');

- 要使用新博客位置更新WordPress选项,请使用以下SQL命令:

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

- 之后你将需要修复WordPress帖子和页面的URL,这些帖子和页面从post slug翻译,并作为guid字段存储在数据库wp_posts表中。此字段中的URL值存储为绝对URL而不是相对URL,因此需要使用以下SQL查询进行更改:

UPDATE wp_posts SET guid = replace(guid, 'http://foo.local.com','http://foo.com');

- 如果您在博客帖子或具有绝对网址的网页内部链接,则移动博客位置后这些链接将指向错误的位置。使用以下SQL命令修复所有WordPress帖子和页面中所有内部链接到自己的博客:

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

- 如果您使用绝对网址定义了自定义菜单网址,则在移动博客位置后,这些链接将指向错误的位置。使用以下SQL命令修复所有WordPress帖子和页面中所有内部菜单链接到自己的博客:

UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://foo.local.com', 'http://foo.com');

请记住,如果您在WP多站点安装上尝试此操作,则会有其他表进行转换。希望有所帮助!