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などで利用するといいでしょう。

出力形式はある程度カスタマイズできるので、必要に応じて変更しつつ、使ってみてくださいね!

シェアする

ニュースレター

Web制作の最新情報やWebクリエイターボックスからのお知らせ、中の人の近況等を定期的にお送りいたします。 ぜひご登録ください!もちろん無料です! :)