WordPressで管理している記事の一覧を、Googleスプレッドシートに自動で取り込みたいと思ったことはありませんか。手動でコピー&ペーストする作業は時間がかかり、更新のたびに同じ作業を繰り返すのは非効率です。この記事では、WordPressのREST APIを利用して記事一覧をスプレッドシートに取得し、さらに自動更新する方法を詳しく解説します。これを読めば、スプレッドシート上で記事のタイトルや公開日、ステータスなどを一元管理できるようになります。
【要点】WordPress REST APIで記事一覧をスプレッドシートに取り込む3ステップ
- REST APIのエンドポイントを確認: サイトURLの末尾に「/wp-json/wp/v2/posts」を追加して、JSON形式の記事データを取得できるURLを用意します。
- IMPORTDATA関数でJSONを読み込み: スプレッドシートのセルに「=IMPORTDATA(“https://あなたのサイト.com/wp-json/wp/v2/posts”)」と入力して、記事一覧の生データを取り込みます。
- QUERYやSPLITで必要な項目だけ抽出: 取得したJSONからタイトルや日付などを抽出するために、QUERY関数やSPLIT関数を組み合わせて整形します。
ADVERTISEMENT
目次
WordPress REST APIの概要とスプレッドシートで使うメリット
WordPress REST APIは、WordPressサイトのデータをJSON形式で外部から取得できる標準機能です。記事やページ、カテゴリーなどの情報をHTTPリクエストで取得でき、認証なしで公開情報を取得できます。これをGoogleスプレッドシートと組み合わせると、記事一覧を自動的に更新できるため、管理画面を開かなくてもスプレッドシート上で状況を把握できるようになります。特に、複数のサイトを管理している場合や、記事の公開スケジュールを一覧で確認したい場合に便利です。スプレッドシートの関数だけで完結するため、プログラミングの知識が少なくても始められます。
スプレッドシートでREST APIから記事一覧を取得する手順
1. エンドポイントURLを準備する
- WordPressサイトのベースURLを確認する
まず、対象のWordPressサイトのURL(例:https://example.com)を確認します。このURLに「/wp-json/wp/v2/posts」を追加すると、記事一覧のREST APIエンドポイントになります。公開されている記事のみ取得する場合は、さらに「?per_page=100」などのパラメータを追加して取得件数を調整できます。 - エンドポイントURLをブラウザでテストする
URLをブラウザのアドレスバーに入力して、JSONデータが表示されるか確認します。正常に表示されれば、スプレッドシートで利用できます。もしエラーが表示される場合は、サイトがREST APIを無効にしていないか確認してください。
2. IMPORTDATA関数でJSONデータを取得する
- スプレッドシートを開き、取得先のセルを選ぶ
新しいスプレッドシートを作成し、A1セルに次の数式を入力します。=IMPORTDATA(“https://example.com/wp-json/wp/v2/posts”) - データが読み込まれるのを待つ
数式を入力すると、数秒でA列にJSONテキストが表示されます。ただし、JSON全体が1つのセルに収まるため、このままでは読みづらいです。そこでQUERY関数やSPLIT関数を使って構造化します。
3. JSONデータを整形して表にする
- QUERY関数でJSONを解析する
IMPORTDATAで取得したデータは生のJSONです。GoogleスプレッドシートにはJSONをパースする専用の関数はありませんが、QUERY関数とREGEXEXTRACTを組み合わせて必要な情報を抽出できます。ただし、複雑なJSONの場合は、後述のApps Scriptを使う方法が簡単です。 - 代替としてApps Scriptを使う
IMPORTDATAだけでは整形が難しい場合は、Google Apps Scriptを使用します。スクリプトエディタを開き、UrlFetchAppでAPIを呼び出し、JSONをパースしてシートに書き込みます。この方法なら、必要な項目だけを好きな順番で並べられます。
記事一覧を自動更新するための設定
手動で数式を更新するのではなく、定期的に自動更新したい場合は、Google Apps Scriptのトリガー機能を使います。以下の手順で設定してください。
- スクリプトエディタを開く
スプレッドシートのメニューから「拡張機能」→「Apps Script」を選択します。 - スクリプトコードを記述する
以下のようなスクリプトを作成します。このスクリプトはAPIからデータを取得し、シートの指定範囲に書き込みます。
function fetchWordPressPosts() {
var url = "https://example.com/wp-json/wp/v2/posts?per_page=100";
var response = UrlFetchApp.fetch(url);
var data = JSON.parse(response.getContentText());
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// ヘッダー行を設定
var headers = ["ID", "タイトル", "公開日", "ステータス", "リンク"];
sheet.getRange(1, 1, 1, headers.length).setValues([headers]);
// データ行を設定
var rows = [];
for (var i = 0; i < data.length; i++) {
var post = data[i];
var row = [
post.id,
post.title.rendered,
post.date,
post.status,
post.link
];
rows.push(row);
}
if (rows.length > 0) {
sheet.getRange(2, 1, rows.length, headers.length).setValues(rows);
}
}
- トリガーを設定する
スクリプトエディタの左メニューから「トリガー」アイコンをクリックし、「トリガーを追加」を選択します。関数を「fetchWordPressPosts」に設定し、時間ベースのトリガー(例:1時間ごと)を選びます。
ADVERTISEMENT
注意点とよくあるトラブル
JSONデータが正しく解析できない場合
IMPORTDATAで取得したJSONは、エスケープ文字を含むため、そのままではQUERY関数で扱いにくいです。この場合は、Apps Scriptを使うことをおすすめします。スクリプト内でJSON.parse()を使えば、きれいなオブジェクトとして扱えます。
REST APIが無効になっている場合
古いWordPressバージョンや特定のセキュリティプラグインがREST APIを無効にしている可能性があります。管理画面の設定やプラグインを確認し、REST APIを有効にしてください。通常はデフォルトで有効です。
1回のリクエストで取得できる記事数に制限がある
デフォルトでは1回のリクエストで10件しか取得できません。多くの記事を取得するには、クエリパラメータ「?per_page=100」を追加し、さらに「&page=2」のようにページを指定して複数回リクエストする必要があります。スクリプト内でループ処理を実装するとよいです。
非公開記事や下書きも取得したい場合
認証が必要な記事(下書きや非公開)を取得するには、OAuth認証またはBasic認証を設定する必要があります。認証なしでは公開記事のみ取得できます。認証が必要な場合は、アプリケーションパスワードを使う方法があります。
IMPORTDATAとApps Scriptの比較
| 項目 | IMPORTDATA関数 | Google Apps Script |
|---|---|---|
| 設定の簡単さ | 関数1つで簡単 | コード記述が必要 |
| データ整形の自由度 | 低い(テキスト解析が難しい) | 高い(JSONを自由にパース) |
| 自動更新の容易さ | 関数の再計算に依存(不安定) | トリガーで定期実行可能 |
| 大量データの取得 | 1つのセルに収まらない場合あり | ループで複数ページ対応可能 |
| 認証が必要なデータ | 対応不可 | ヘッダーに認証情報を追加可能 |
まとめ
この記事では、WordPressのREST APIを利用してGoogleスプレッドシートに記事一覧を取得する方法を解説しました。IMPORTDATA関数を使う簡単な方法から、Apps Scriptを使った高度な自動化まで、目的に応じて選択できます。特にApps Scriptを利用すれば、公開日やステータスを一覧管理し、定期的に更新できるため、記事管理の効率が大幅に向上します。次のステップとして、カスタムフィールドやカテゴリー情報も取得するようにスクリプトを拡張してみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
