导入和替换现有页面/帖子内容

时间:2011-04-14 作者:hereswhatidid

有没有办法导入导出的基本Wordpress内容XML文件并替换现有内容?我要做的是同步一个站点的两个实例(开发服务器和临时服务器),我只想替换页面内容。当我尝试导入XML文档时,它只是声明所有页面都已经存在,并且什么也没有做。是否可以覆盖该警告并用XML的内容替换页面的内容?

3 个回复
最合适的回答,由SO网友:AMcDermott 整理而成

一种选择可能是导出两个XML文件,使用文件合并工具(如http://winmerge.org, 删除所有帖子并替换为合并版本。

SO网友:AndrewD

在从开发人员导入之前,运行查询以删除所有临时发布

由于菜单和页面是自定义的帖子类型,这将更新所有帖子、页面和菜单以匹配您的开发人员站点。

通过运行数据库查询删除临时服务器中的所有帖子。请注意,代码需要设置用户ID。如果有更多用户,请修改它或多次运行它。

SET @WPUSERID=\'1\';
-- end config
-- Delete a,b,c 
   FROM wp_posts a 
   LEFT JOIN wp_term_relationships b 
   ON (a.ID = b.object_id)
   LEFT JOIN wp_postmeta c 
   ON (a.ID = c.post_id) 
   WHERE a.post_author = @WPUSERID;
导入从开发人员站点导出的XML文件。

Caution: 为dev和staging备份数据库,以防您不小心将它们混淆(例如,您认为您连接到了stage,并且在执行删除操作时确实连接到了dev)。

安全:删除前查看帖子

Select * FROM wp_posts a 
LEFT JOIN wp_term_relationships b 
ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c 
ON (a.ID = c.post_id) 
WHERE a.post_author = @WPUSERID; 

SO网友:JKL

在我的例子中,我试图用预定义的内容覆盖sage创建的两个默认页面的内容,覆盖页面/帖子内容的最佳方法是使用wp post update cli命令。

wp post update 2 "./assets/page-content.html"
哪里2 是页面ID和./assets/page-content.html 是包含新内容的文件的路径(如果需要,可以从导出的xml中提取内容)。

https://developer.wordpress.org/cli/commands/post/update/

结束