ENGINEERING ARTICLE
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の件数と内容も確認するようにしましょう。