web-dev-qa-db-ja.com

既存のページ/投稿コンテンツをインポートして置き換える

基本的な、エクスポートされたWordpressコンテンツXMLファイルをインポートして既存のコンテンツを置き換える方法はありますか?私がやろうとしているのは、サイトの2つのインスタンス(開発サーバーとステージングサーバー)を同期させることです。そして、私が置き換えたいのはPageコンテンツだけです。 XML文書をインポートしようとすると、すべてのページが既に存在していることが示されているだけで、何もされません。その警告をオーバーライドして、ページの内容をXMLの内容で置き換えることは可能ですか?

3
hereswhatidid

1つの選択肢は、両方のXMLファイルをエクスポートし、 http://winmerge.org のようなファイルマージツールを使用してそれらをマージし、すべての投稿を削除してマージバージョンに置き換えることです。

1
AMcDermott

Devからインポートする前にすべてのステージング投稿を削除するためのクエリを実行する

メニューとページはカスタム投稿タイプであるため、これによりすべての投稿、ページ、およびメニューが開発サイトに合わせて更新されます。

  1. データベースクエリを実行して、ステージングサーバー内のすべての投稿を削除します。このコードではユーザー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;
    
  2. DevサイトからエクスポートしたXMLファイルをインポートします。

注意 :誤ってデータベースを混乱させた場合のために、データベースをdevとステージングの両方のためにバックアップしてください(例えば、ステージに接続していると思いますが、削除を実行すると実際に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; 
1
AndrewD