WordPressの記事をMarkdown形式に一括出力する方法
WordPressで運営していた記事をJAMStackサイトに移行したり、GitHubで管理したいというとき、記事数が少なければチマチマ手作業でも問題なさそうですが、数十、数百の記事を手作業するのはさすがにしんどいですよね。今回はたまりにたまったWordPressの記事をMarkdown形式に一括で変更、ダウンロードする方法を紹介します。
↑私が10年以上利用している会計ソフト!
1. WordPressの記事をエクスポート
WordPress管理画面の「ツール」→「エクスポート」から書き出したいコンテンツを選びます。画像や本文データすべて利用する場合は「すべてのコンテンツ」を選んで「エクスポートファイルをダウンロード」ボタンをクリック。XML形式のファイルがダウンロードされます。
エクスポートしたデータは、ひとまずわかりやすいフォルダーに格納しておきます。ここでは「wp-to-md」というフォルダーを用意しました。
2. Node.jsをインストール
Node.jsはJavaScriptの実行環境です。Node.jsのWebサイトから環境に合わせたものをダウンロードしましょう。LTS(推奨版)と最新版がありますが、LTS(推奨版)でOKです。
ダウンロードしたファイルを開いて、パネルの指示にそってインストールします。
すでにNode.jsは使っているよーという方も、今回の作業にはNode.jsの12.14以上のバージョンが必要なので、条件に満たさない場合は sudo n stable
でアップデートしてください。
インストールできているか確認
ターミナルを開いて以下のコマンドを入力。エディターのVSCodeを使っている方は、メニューの「ターミナル」→「新しいターミナル」でターミナルを開きます。
node -v
バージョン番号がでてきたらNode.jsのインストール完了です!
3. 一括変更のコマンド
ターミナルで任意のフォルダー(wp-to-md)の位置に移動し、以下のコマンドを入力します。
npx wordpress-export-to-markdown
すると以下の内容が聞かれるので、必要であればカスタマイズします:
- Path to WordPress export file? (WordPressのXMLファイル名)
- Path to output folder? (出力先フォルダー名。デフォルトはoutput)
- Create year folders? (投稿年のフォルダーを作る?)
- Create month folders? (投稿月のフォルダーを作る?)
- Create a folder for each post? (投稿ごとにフォルダーを作る?)
- Prefix post folders/files with date? (ファイル名の先頭に投稿日時をつける?)
- Save images attached to posts? (添付画像を保存する?)
- Save images scraped from post body content? (imgタグで挿入した画像を保存する?)
- Include custom post types and pages? (カスタム投稿タイプやページも含める?)
詳しい仕様は制作者のGitHubも参照してください。
完成!
記事数や画像数が多いと数時間かかるかもしれませんが、無事完了すると指定したフォルダー内にMarkdownファイルや画像が出力されています!やったね!
Markdownファイルを確認すると、上部にタイトル、投稿日、カテゴリー、タグ、アイキャッチ画像名がメタ情報としてまとめられています。gray-matterなどで利用するといいでしょう。
出力形式はある程度カスタマイズできるので、必要に応じて変更しつつ、使ってみてくださいね!