【问题标题】:Wordpress Mysql database find and replace - Replace only content based on parentWordpress Mysql 数据库查找和替换 - 仅替换基于父级的内容
【发布时间】:2014-03-21 17:29:01
【问题描述】:

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

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

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

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

运气不佳。我做错了什么?

【问题讨论】:

  • UPDATE wp_posts SET post_content = REPLACE (post_content,'Item to replace here','Replacement text here') WHERE post_parent = 4860;

标签: php mysql sql wordpress


【解决方案1】:

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

【讨论】:

  • 完美。正是我想要的。谢谢。
【解决方案2】:

这是我在标准 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');

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-19
    • 2011-06-16
    • 2015-06-30
    • 2014-02-26
    • 2014-06-13
    • 1970-01-01
    相关资源
    最近更新 更多