[wp-cli]WordPressのバックアップをXMLファイルに出力する


新年早々怒涛のwp-cliです。怒涛の英語な予備校みたいに、ヤマトタケルのコスプレしたほうがよいのでしょうか?(そろそろ山手線のドアに広告が貼られているかな?)

wp-cliでは、WordPressのXMLバックアップをワンライナーで行うことができます。しかも、ブラウザでバックアップするより高機能です。コマンドの構文は「wp export」たったこれだけで、カレントディレクトリにXMLファイルを出力してくれます。

それでは早速やってみましょう。

■ カレントディレクトリに出力する

# wp --allow-root export --path=/home/vhosts/$(uname -n)/public_html
Starting export process...
Writing to file /root/wordpress.2015-01-04.0.xml
Success: All done with export.

ファイル名は「YYYY-MM-DD.0.xml」という規則で出力されます。

■ ディレクトリを指定して出力する

簡単にバックアップできるからと言ってあちこちにファイルを出力しまくるのは行儀が悪いものです。cdしてからコマンドを実行してもよいのですが、オプションに「--dir=<ディレクトリ名>」をつけることで、出力先のディレクトリを指定してバックアップすることができます。

# wp --allow-root export --dir=${HOME}/backup --path=/home/vhosts/$(uname -n)/public_html
Starting export process...
Writing to file /root/backup/wordpress.2015-01-04.0.xml
Success: All done with export.

■ 投稿や固定ページの日付を指定して出力する

wp-cliでXMLバックアップを行うと、ある日付以降の投稿や固定ページのみを出力することができます。ブラウザからは「すべてのコンテンツ」「投稿」「固定ページ」のいずれかしか選べないので、あとでXMLファイルを編集しなければなりません。しかし、wp-cliではそんな手間は不要です。ここでは試しに未来日を指定して出力してみましょう。日付指定のフォーマットは「YYYY-MM-DD」です。

# wp --allow-root export --start_date=2015-01-05 --path=/home/vhosts/$(uname -n)/public_html
Starting export process...
Writing to file /root/wordpress.2015-01-04.0.xml
Success: All done with export.

それでは、XMLファイルを見てみましょう。最初のコメントは省略しています。(クリックで大きくなります)

# cat wordpress.2015-01-04.0.xml 
<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="WordPress/4.1" created="2015-01-04 01:50" -->
<rss version="2.0" xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wp="http://wordpress.org/export/1.2/">
  <channel>
<title>ぬるぽぽぽ</title>
<link>http://**********</link>
<description>Just another WordPress site</description>
<pubDate>Sun, 04 Jan 2015 01:50:31 +0000</pubDate>
<language>ja</language>
<wp:wxr_version>1.2</wp:wxr_version>
<wp:base_site_url>http://**********</wp:base_site_url>
<wp:base_blog_url>http://**********</wp:base_blog_url>
<wp:wp_author>
  <wp:author_login>nullpopopo</wp:author_login>
  <wp:author_email>root@localhost.localdomain</wp:author_email>
  <wp:author_display_name><![CDATA[(っ´∀`)っ ゃー]]></wp:author_display_name>
  <wp:author_first_name><![CDATA[]]></wp:author_first_name>
  <wp:author_last_name><![CDATA[]]></wp:author_last_name>
</wp:wp_author>
<wp:category>
  <wp:term_id>1</wp:term_id>
  <wp:category_nicename>%e6%9c%aa%e5%88%86%e9%a1%9e</wp:category_nicename>
  <wp:category_parent/>
  <wp:cat_name><![CDATA[未分類]]></wp:cat_name>
</wp:category>
<generator>http://wordpress.org/?v=4.1</generator>
  </channel>
</rss>

ご覧の通り、未来日を指定すると投稿や固定ページが1つも出力されていません。

上記の例では開始日を指定して出力しましたが、終了日を指定して出力することもできます。また、開始日と終了日の両方を引数に指定することで、範囲を絞って出力することも可能です。

# wp --allow-root export --end_date=2015-01-05 --path=/home/vhosts/$(uname -n)/public_html
Starting export process...
Writing to file /root/wordpress.2015-01-04.0.xml
Success: All done with export.
# wp --allow-root export --start_date=2015-01-01 --end_date=2015-01-05 --path=/home/vhosts/$(uname -n)/public_html
Starting export process...
Writing to file /root/wordpress.2015-01-04.0.xml
Success: All done with export.

いかがでしたでしょうか?なるべく手オペが入る余地を少なくすることで、間違いのない仕事ができるようになるでしょう。でわ〜♪