WP-CLIでWordPressの投稿だけをXMLへ書き出す方法|引数エラーも解説

この記事は約3分で読めます

こんにちは、 @Manabu です。

WordPressの記事を別の環境へ移行したり、Markdownへ変換したりするために、投稿データだけを書き出したいことがあります。

WP-CLIのwp exportを使えば、管理画面を操作せずにWordPressのデータをXMLへ出力できます。

今回は、投稿だけを書き出すコマンドと、Too many positional argumentsが発生した時の確認ポイントを紹介します。

この記事は、以下のような方におすすめです。

こんな方におすすめ

  • WordPressの投稿をXMLへ書き出したい
  • 固定ページを除外して投稿だけを取得したい
  • wp exportで引数エラーが発生している

投稿だけを書き出す

次のコマンドをWordPressがインストールされているディレクトリで実行します。

wp export \
  --dir=/tmp/wp-export \
  --post_type=post

rootユーザーで実行する必要がある環境では、--allow-rootを追加します。

wp export \
  --dir=/root/wp-export \
  --post_type=post \
  --allow-root

実行後、指定したディレクトリへWXR形式のXMLファイルが作成されます。

Too many positional argumentsの原因

次のようにオプションのハイフンが一つだと、引数として正しく認識されません。

wp export -post_type=post

エラー例です。

Error: Too many positional arguments: -post_type=post

post_typeは、ハイフンを二つ付けて指定します。

wp export --post_type=post

コピーしたコマンドに全角スペースや特殊な空白が含まれている場合もあるため、エラーが続く場合はオプションを手入力してみてください。

出力ファイルを確認する

出力先を確認します。

ls -lh /tmp/wp-export

XML内に投稿データがあるか確認する場合は、wp:post_typeを検索します。

grep -n '<wp:post_type>post</wp:post_type>' /tmp/wp-export/*.xml | head

投稿数が多い場合は、XMLが複数ファイルへ分割されることがあります。変換や移行を行う時は、出力された全ファイルを対象にしてください。

XMLに含まれる主な情報

  • 記事タイトル
  • 本文
  • 投稿日
  • 更新日
  • 公開状態
  • カテゴリー
  • タグ
  • 元のURL

画像ファイル自体がXMLへ埋め込まれるわけではありません。画像も移行する場合は、メディアのURLと保存先を別途確認する必要があります。

まとめ

今回は、WP-CLIを使ってWordPressの投稿だけをXMLへ書き出す方法を紹介しました。

post_typeなどのオプションは、ハイフンを二つ付けて指定することがポイントです。

WordPressの記事移行やバックアップを行う時は、出力されたXMLの件数と内容も確認するようにしましょう。