Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Is there any way to import a basic, exported Wordpress content XML file and have it replace the existing content? What I'm trying to do is synch up two instances of a site (development and staging servers) and all I want to replace is the Page content. When I try to import the XML document it simply states that all the pages already exist and nothing is done. Is it possible to override that warning and replace the content of the pages with the content of the XML?

share|improve this question

2 Answers 2

up vote 0 down vote accepted

One option might be to export both XML files, merge them using a file merging tool like http://winmerge.org, delete all posts and replace with the merged version.

share|improve this answer
    
That's not a bad idea. Hopefully nothing will be affected by the change of post IDs. Which there was a way to enable the importer to just overwrite existing posts. –  hereswhatidid Apr 15 '11 at 21:20

Run A Query to Delete All Staging Posts before Importing From Dev

Because menus and pages are custom post types, this will update all posts, pages, and menus to match your dev site.

  1. Delete all posts in the staging server by running a database query. Note that the code requires setting a userid. modify it if there are more users or run it more than once.

    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;
    
  2. Import the XML file that you exported from the Dev site.

Caution: Back up your databases for both dev and staging in case you accidently get them mixed up (you think you're connected to stage for example, and you are really connected to dev when you do the delete) .

Be safe: view posts before deleting

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; 
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.