ADVERTISEMENT

【Googleスプレッドシート】WordPress REST APIで記事一覧を取得!投稿データのインポート

【Googleスプレッドシート】WordPress REST APIで記事一覧を取得!投稿データのインポート
🛡️ 超解決

WordPressで管理している記事の一覧をスプレッドシートに取り込みたいとお考えではありませんか。記事タイトルや公開日、カテゴリなどの情報を一覧で管理できれば、レポート作成やデータ分析に役立ちます。WordPress REST APIを利用すれば、これらのデータを簡単に取得できます。この記事では、Google Apps Scriptを使ってREST APIから記事一覧を取得し、スプレッドシートにインポートする方法を手順を追って解説します。

【要点】WordPress REST APIとGoogle Apps Scriptで記事一覧を自動インポート

  • WordPress REST APIエンドポイント: 公開サイトなら認証なしで記事データをJSON形式で取得できます。
  • Google Apps ScriptのUrlFetchApp: スクリプトでAPIを呼び出し、取得したJSONをシートに書き込みます。
  • スクリプトのトリガー設定: 定期的に実行すれば記事一覧を自動更新できます。

ADVERTISEMENT

WordPress REST APIとGoogle Apps Scriptの連携の仕組み

WordPress REST APIは、サイトのデータを外部から操作するための標準インターフェースです。記事一覧を取得するには、エンドポイント「/wp-json/wp/v2/posts」にGETリクエストを送ります。返ってくるJSONには、タイトル、本文、公開日、スラッグ、カテゴリIDなどが含まれています。Google Apps Scriptでは、UrlFetchApp.fetch()を使ってこのAPIを呼び出し、結果をパースしてスプレッドシートのセルに書き込むことが可能です。事前に必要なものは、WordPressサイトのURLと、Googleスプレッドシートのアカウントだけです。認証なしの公開サイトであればすぐに試せます。認証が必要な場合(プライベートサイトなど)は、Basic認証やOAuthの設定が必要になりますが、本記事では公開サイトを前提とします。

Google Apps ScriptでWordPress記事一覧をインポートする手順

手順1: スクリプトエディタを開く

  1. スプレッドシートを開く
    Googleスプレッドシートで新しいファイルを作成するか、インポート先のシートを開きます。
  2. スクリプトエディタを起動する
    メニューの「拡張機能」から「Apps Script」を選択します。新しいタブでスクリプトエディタが開きます。

手順2: スクリプトコードを記述する

  1. プロジェクト名を設定する
    デフォルトの「無題のプロジェクト」をクリックし、分かりやすい名前(例:WordPress記事インポート)に変更します。
  2. コードを記述する
    以下のコードをエディタに貼り付けます。
function importWordPressPosts() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var siteUrl = 'https://あなたのサイト.com/wp-json/wp/v2/posts?per_page=100';
  var response = UrlFetchApp.fetch(siteUrl);
  var posts = JSON.parse(response.getContentText());
  
  // ヘッダー行を設定
  sheet.getRange(1, 1, 1, 5).setValues([['ID', 'タイトル', 'スラッグ', '公開日', 'ステータス']]);
  
  // データ行を書き込み
  var data = [];
  posts.forEach(function(post) {
    data.push([post.id, post.title.rendered, post.slug, post.date, post.status]);
  });
  if (data.length > 0) {
    sheet.getRange(2, 1, data.length, 5).setValues(data);
  }
}

上記のコードは、WordPressサイトから最大100件の記事を取得し、スプレッドシートにID、タイトル、スラッグ、公開日、ステータスを書き込みます。siteUrlの部分はご自身のWordPressサイトのドメインに置き換えてください。

手順3: スクリプトを実行する

  1. 関数を選択して実行
    スクリプトエディタのツールバーで関数「importWordPressPosts」を選択し、「▶ 実行」ボタンをクリックします。
  2. 承認を求められたら許可
    初回実行時には、外部サービス(UrlFetchApp)へのアクセス許可や、スプレッドシートの読み書き許可を求めるダイアログが表示されます。内容を確認し「許可」をクリックします。
  3. 実行結果を確認
    実行が完了すると、スプレッドシートにデータが書き込まれます。ログにエラーが表示された場合は、siteUrlが正しいか、ネットワークにアクセスできるかを確認します。

手順4: トリガーを設定して定期実行する(オプション)

  1. トリガーを追加
    スクリプトエディタの左側メニューから「時計アイコン」をクリックし、「トリガーの追加」をクリックします。
  2. 実行頻度を設定
    「時間ベースのトリガー」で「1日おき」や「1時間おき」など好みの間隔を選択します。また、エラー通知を有効にしておくと安心です。
  3. トリガーを保存
    設定を保存すれば、指定した間隔で自動的に記事一覧が更新されます。

注意点とよくあるトラブル

認証が必要なWordPressサイトの場合

非公開サイトや特定ユーザーのみアクセス可能なサイトでは、Basic認証やOAuth認証が必要です。スクリプト内でUrlFetchApp.fetch()のオプションにheadersで認証情報を追加します。具体的な方法は公式ドキュメントを参照してください。

一度に取得できる記事数の上限

デフォルトでは1リクエストあたり10件ですが、URLパラメータ「per_page=100」で最大100件まで増やせます。それ以上の記事がある場合は、ページネーション(pageパラメータ)を使ってループ処理を行います。

API呼び出しの制限

Google Apps ScriptのUrlFetchAppには1日あたりの呼び出し制限があります(無料アカウントの場合)。大量のデータを頻繁に更新する場合は、制限に注意してください。

タイトルにHTMLタグが含まれる場合

REST APIから返ってくるタイトルはHTMLエンティティを含む場合があります。必要に応じてスクリプト内でタグを除去する処理を追加してください。

ADVERTISEMENT

方法の比較: REST APIを使う場合とCSVエクスポートの場合

比較項目 REST API + Apps Script CSVエクスポート手動インポート
自動化 完全に自動化可能 手動操作が必要
リアルタイム性 トリガー設定で定期更新 その都度エクスポートする必要
カスタマイズ 取得するデータ項目やフィルタを自由に設定 プラグインで出力を変更する必要
セキュリティ 認証情報をスクリプト内で厳重に管理 CSVファイルが外部に漏れるリスク

REST APIを使う方法は、一度設定すればメンテナンスが少なく、動的なデータ管理に適しています。手動ではなく、自動化を重視する方におすすめです。

まとめ

この記事では、GoogleスプレッドシートでWordPress REST APIから記事一覧を取得し、投稿データをインポートする方法を解説しました。Google Apps ScriptのUrlFetchAppを使うことで、APIから取得したJSONを簡単にシートに書き込めます。さらにトリガーを設定すれば、定期的なデータ更新も自動化できます。応用として、カテゴリ情報やカスタムフィールドも取得するようスクリプトを拡張できます。ぜひご自身のWordPressサイトで試し、記事管理を効率化してみてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。