[wp-cli]WordPressのXMLファイルをインポートする


wp-cliではXMLファイルのエクスポートがコマンドラインでできることをこちらでやってみましたが、今度はインポートしてみたいと思います。正しくインポートできたかどうかを確認するために、今回は以下の順序で作業してみたいと思います。

  1. エクスポート実施
  2. 投稿記事と固定ページの削除
  3. インポート実施

エクスポートはあらかじめこちらの手順で行います。次に投稿記事と固定ページを削除しますが、削除対象をゴミ箱に放り込まず、完全に削除しましょう。でないと、インポート時に重複エラーとなってしまいます。

# wp --allow-root post delete 1 --force --path=/home/vhosts/wp-centos7/public_html/
Success: Deleted post 1.
# wp --allow-root post delete 2 --force --path=/home/vhosts/wp-centos7/public_html/
Success: Deleted post 2.

上記のように、引数に「--force」をつけると完全に削除することができます。ゴミ箱行きの削除が成功した際、メッセージは「Success: Trashed post 1.」と表示されますが、完全削除に成功したときは「Success: Deleted post 1.」と表示されます。メッセージの違いに気をつけましょう。

それでは、いよいよインポートです。

# wp --allow-root import ./wordpress.2015-01-04.0.xml --authors=create --path=/home/vhosts/$(uname -n)/public_html/
Starting the import process...


Processing post #1 ("(っ´∀`)っ ゃー") (post_type: post)
-- 1 of 2
-- Sun, 04 Jan 2015 05:35:09 +0000
-- Imported post as post_id #1
-- Added terms (1) for taxonomy "category"
-- Added comment #14 (1 of 1)
-- Added post_meta _pingme
-- Added post_meta _encloseme
-- Added post_meta _pingme
-- Added post_meta _encloseme


Processing post #2 ("サンプルページ") (post_type: page)
-- 2 of 2
-- Sun, 04 Jan 2015 05:35:09 +0000
-- Imported post as post_id #2
-- Added post_meta _wp_page_template
<p>All done. <a href="http://**********/wp-admin/">Have fun!</a></p><p>Remember to update the passwords and roles of imported users.</p>
Success: Finished importing from ./wordpress.2015-01-04.0.xml file.

もし完全削除しておかないと、インポート時にこんなメッセージが出力されます。

Starting the import process...


Processing post #1 ("(っ´∀`)っ ゃー") (post_type: post)
-- 1 of 2
-- Sun, 04 Jan 2015 05:38:15 +0000
投稿 &#8220;(っ´∀`)っ ゃー&#8221; already exists.<br />-- Added terms (1) for taxonomy "category"
-- Added post_meta _pingme
-- Added post_meta _encloseme
-- Added post_meta _pingme
-- Added post_meta _encloseme


Processing post #2 ("サンプルページ") (post_type: page)
-- 2 of 2
-- Sun, 04 Jan 2015 05:38:15 +0000
固定ページ &#8220;サンプルページ&#8221; already exists.<br />-- Added post_meta _wp_page_template
<p>All done. <a href="http://**********/wp-admin/">Have fun!</a></p><p>Remember to update the passwords and roles of imported users.</p>
Success: Finished importing from ./wordpress.2015-01-04.0.xml file.

今回はまだ投稿と固定ページが1つずつだからよいようなものの、多数の投稿があると、ゴミ箱を全部確認するのは非常にしんどいです。もしインポートに成功してもブラウザで記事が表示されなければ、投稿がゴミ箱にあることを確認してください。また、wp post listで確認しても、リストに出てこないので要注意です。

もし誤ってゴミ箱送り→インポートしてしまった場合は、該当する投稿を「--force」で削除してからインポートすると復活させることができます。

ね、簡単でしょう?