【完全版】WordPressサイトにAPIを実装する方法!REST API・外部連携・プラグイン開発の基礎から応用まで

【完全版】WordPressサイトにAPIを実装する方法!REST API・外部連携・プラグイン開発の基礎から応用まで
Takuma Oka

外資系SEOスペシャリスト

Takuma Oka (岡 拓馬)

こんにちは、岡 拓馬(おか たくま)です。
このブログでは、海外ノマド×SEO×ストック収入をテーマに、自分の経験や学びを発信しています。

高校卒業後は料理人としてスタートし、その後、航空自衛隊での勤務を経て、2016年からWebライター・SEOコンサルタントとして独立。現在は、海外の外資系企業と契約しながら、フルリモートで働いています。拠点はアジア各国を転々としており、最近はベトナムやタイ、マレーシア、フィリピンなどでノマド生活をしています。

WordPressでサイトを運営していると、

  • 「外部サービスのデータを取り込みたい」
  • 「自作アプリとWordPressをつなげたい」
  • 「もっと効率よく自動化できないかな?」

そんな場面に必ず登場するのが API(Application Programming Interface) です。

特にWordPressには標準で「REST API」が搭載されており、投稿やページデータを外部アプリから操作したり、逆にWordPressから外部APIを呼び出したりできます。

これを理解すれば、プラグインに頼らず柔軟な機能追加や自動化 が可能になります。

本記事では、初心者でもすぐに実装できるように、WordPressでのAPI活用を基礎から応用まで体系的に解説します。

コード例も豊富に用意しているので、記事を読みながら試していけば、実際に自分のサイトでAPIを使いこなせるようになります。

AmazonKindle
📘 『AI時代のテクニカルSEOの教科書』無料公開中!
AI要約・ゼロクリック検索・構造化データ・インデックス管理…
「検索流入が減った」と感じている方にこそ読んでほしい、最新SEO戦略を体系的にまとめた1冊です。
✔️ AI時代のSEOの本質とは?
✔️ 今すぐできるテクニカル改善とは?
✔️ Googleに拾われるサイト構造とは?
👉 今すぐダウンロードして、SEOの“次の一手”を見つけてください。
目次

WordPressでAPIを実装するとは?

出典:Chris Miller

WordPressにおけるAPI実装とは、外部システムとやり取りするための仕組みを導入することです。

APIは「アプリケーション同士をつなぐ窓口」であり、これを活用することでWordPressは単なるブログCMSではなく、柔軟なアプリケーション基盤へと進化します。

WordPressのデータを外部から操作する場合

WordPressには標準で「REST API」が搭載されており、投稿や固定ページのデータを外部から取得・更新できます。

例えば以下のURLにアクセスすると、記事データをJSON形式で取得できます。

https://example.com/wp-json/wp/v2/posts

この仕組みを使えば、モバイルアプリやフロントエンドフレームワーク(React・Vueなど)からWordPressのデータを呼び出し、ヘッドレスCMSとして運用することも可能です。

WordPressから外部サービスにアクセスする場合

逆に、WordPressから外部のAPIを呼び出すことも可能です。

例えば天気予報APIを使って「今日の天気」をサイトに表示したり、Slack APIを使って「記事が公開されたらチームに通知する」といった処理を自動化できます。

WordPressには wp_remote_get()wp_remote_post() などの関数が備わっており、これらを使えば外部サービスとシンプルに連携できます。

API実装のメリット

WordPressにAPIを実装する最大の利点は、自由度の高さです。

プラグインに頼らなくても機能を追加でき、外部サービスとの連携によって自動化や効率化が実現できます。

たとえば…

  • プラグインでは実現できない独自機能を追加できる
  • 業務フローを自動化して工数を削減できる
  • ヘッドレスCMS化してモダンなUI/UXを提供できる

APIを理解して使いこなせるようになると、WordPressを単なるCMSではなく「システムの中核」として活用できるようになります。

WordPressで利用できる主なAPIの種類

出典:The Social Guide

WordPressには「REST API」だけでなく、開発や運用を助けるためのさまざまなAPIが用意されています。

これらを理解しておくと、サイトに新しい機能を追加したり、外部サービスと柔軟に連携したりする際に役立ちます。

Takuma

ここでは、特によく使われるAPIを中心に紹介します。

REST API

もっとも有名なのが、WordPress REST APIです。

投稿や固定ページ、ユーザー情報などにアクセスでき、外部アプリケーションからWordPressを操作できます。

URL形式でデータを取得できるのが特徴で、例えば /wp-json/wp/v2/posts にアクセスすれば記事一覧をJSON形式で取得可能です。

ヘッドレスCMSを実現する際には、欠かせない存在です。

HTTP API

外部サービスと連携する場合に便利なのが、HTTP APIです。

wp_remote_get()wp_remote_post() といった関数を使うことで、WordPressから外部APIにリクエストを送り、データを取得したり送信したりできます。

例えば、天気予報APIや決済サービスAPIと接続するのに活用されます。

Options APIとTransients API

サイトの設定値や一時的なデータを扱うのが、Options APIとTransients APIです。

Options APIはデータベースに設定値を保存・取得するための仕組みで、APIキーやユーザー設定を管理する際に使います。

一方でTransients APIは、有効期限付きでデータを保存できるため、外部APIのレスポンスをキャッシュするのに最適です。

キャッシュを導入することで、APIリクエストの回数を減らし、パフォーマンスを改善できます。

Plugin API

WordPressの拡張性を支えているのが、Plugin APIです。

アクションフックやフィルターフックを利用して、既存の処理に割り込んだり動作を変更したりできます。

API連携を行うプラグインを開発する際には、必ず活用することになる基本の仕組みです。

その他のAPI

この他にも、開発の場面ではさまざまなAPIが用意されています。

項目詳細
Settings API管理画面に独自の設定ページを追加する
Widgets APIオリジナルのウィジェットを作成する
Database APIデータベースとやり取りする安全な方法を提供する

こうしたAPIを組み合わせて使うことで、WordPressの可能性を大きく広げることができます。

WordPress REST APIの基本と使い方

WordPress REST APIは、WordPressに保存されているコンテンツや設定に「URLを通じてアクセス」できる仕組みです。

標準機能としてWordPress 4.7以降に搭載されているため、追加のプラグインを入れなくてもすぐに利用できます。

例えば、サイトURLの末尾に /wp-json/ を付けてアクセスすると、利用可能なエンドポイントの一覧が表示されます。

https://example.com/wp-json/

この仕組みを使えば、記事一覧を外部アプリに表示したり、新しい投稿を外部サービスから作成したりすることが可能です。

Takuma

ここでは基本となる操作を順番に見ていきましょう。

REST APIを使うときの注意点
  • 公開データ(記事や固定ページ)は認証なしでも取得可能
  • 投稿の作成・更新・削除には必ず認証が必要
  • 1回のリクエストで取得できる最大件数は100件まで(それ以上はページネーションが必要)
  • サイトパフォーマンスへの影響を考え、頻繁なアクセスが想定される場合はキャッシュを活用する

投稿データを取得する(GET)

最もシンプルな利用例が「GETリクエスト」です。

WordPressの投稿データを取得する場合は、以下のようなURLにアクセスします。

https://example.com/wp-json/wp/v2/posts

ブラウザやcURLコマンド、JavaScriptのfetch関数を使ってアクセスすれば、JSON形式で記事データが返ってきます。

クエリパラメータを使うことで、並び順や件数を指定することもできます。

例:最新5件の記事を取得する

https://example.com/wp-json/wp/v2/posts?per_page=5&orderby=date&order=desc

投稿を作成する(POST)

記事の作成は「POSTリクエスト」で行います。

これは認証が必要なので、ログインユーザーの権限を使うか、OAuth・Basic認証などを設定してからリクエストします。

POST https://example.com/wp-json/wp/v2/posts

送信データの例

{
  "title": "新しい記事のタイトル",
  "content": "ここに本文を入力します",
  "status": "publish"
}

投稿を更新する(PUT/PATCH)

既存の記事を編集したい場合は、記事IDを指定して「PUT」または「PATCH」を使います。

PUT https://example.com/wp-json/wp/v2/posts/123

送信データの例

{
  "title": "タイトルを更新しました",
  "status": "draft"
}

これで記事ID「123」のタイトルが更新され、公開状態が下書きに変更されます。

投稿を削除する(DELETE)

不要になった記事を削除する場合は、「DELETEリクエスト」を送ります。

DELETE https://example.com/wp-json/wp/v2/posts/123

デフォルトでは「ゴミ箱」に移動するだけですが、完全に削除したい場合は force=true を付与します。

DELETE https://example.com/wp-json/wp/v2/posts/123?force=true

カスタムエンドポイントの作成方法

WordPress REST APIにはデフォルトで

  • 「投稿」
  • 「ページ」
  • 「ユーザー」

などのエンドポイントが用意されています。

しかし、開発を進めていくと「独自のデータを返すAPIが欲しい」と感じる場面が出てきます。

そんなときに活用できるのが「カスタムエンドポイント」です。

カスタムエンドポイントを作成することで、たとえば「お問い合わせフォームの送信データを一覧表示するAPI」や「特定のカテゴリの記事だけを取得するAPI」を用意できます。

基本の仕組み

カスタムエンドポイントは、functions.php もしくは独自プラグイン内で register_rest_route() 関数を使って定義します。

以下は「/wp-json/myplugin/v1/message」というエンドポイントを作り、固定のメッセージを返す最もシンプルな例です。

add_action('rest_api_init', function () {
    register_rest_route('myplugin/v1', '/message', [
        'methods'  => 'GET',
        'callback' => 'myplugin_get_message',
    ]);
});

function myplugin_get_message() {
    return ['message' => 'Hello, this is my custom API endpoint!'];
}

このコードを追加すると、ブラウザで以下のURLにアクセスしたときにJSONデータが返ってきます。

https://example.com/wp-json/myplugin/v1/message

返却結果

{
  "message": "Hello, this is my custom API endpoint!"
}

データベースから情報を返す例

もう少し実用的な例として、カスタム投稿タイプ「form_submission」に保存されたデータを返すAPIを考えてみましょう。

add_action('rest_api_init', function () {
    register_rest_route('myplugin/v1', '/submissions', [
        'methods'  => 'GET',
        'callback' => 'myplugin_get_submissions',
    ]);
});

function myplugin_get_submissions() {
    $args = [
        'post_type'      => 'form_submission',
        'posts_per_page' => -1,
    ];
    $posts = get_posts($args);

    $data = [];
    foreach ($posts as $post) {
        $data[] = [
            'id'      => $post->ID,
            'title'   => $post->post_title,
            'content' => $post->post_content,
            'date'    => $post->post_date,
        ];
    }
    return $data;
}

これで /wp-json/myplugin/v1/submissions にアクセスすると、フォーム送信データが一覧で取得できます。

カスタムエンドポイント作成のポイント

項目詳細
命名規則名前空間(例:myplugin/v1)をつけることで、他のプラグインと競合しにくくなる
権限管理公開してはいけない情報は permission_callback を設定し、権限を持つユーザーだけが利用できるようにする
返却形式レスポンスは必ずJSON形式に統一することで、外部サービスとやり取りしやすくなる

外部APIをWordPressに統合する方法

WordPressの魅力のひとつは、外部サービスと簡単に連携できる点です。

天気予報やSNS通知、決済サービスなどをAPI経由で組み込むことで、プラグインに頼らなくても独自の機能をサイトに追加できます。

Takuma

ここでは基本的な実装手順を整理してみましょう。

HTTP APIを使った外部APIへのリクエスト

WordPressには wp_remote_get()wp_remote_post() などの関数が用意されており、これを利用することで外部APIにアクセスできます。

例えば「OpenWeatherMap API」を使って東京の天気を取得する場合は、以下のように記述します。

function get_tokyo_weather() {
    $api_key  = 'YOUR_API_KEY';
    $endpoint = 'https://api.openweathermap.org/data/2.5/weather?q=Tokyo&appid=' . $api_key;

    $response = wp_remote_get($endpoint);

    if (is_wp_error($response)) {
        return 'APIエラーが発生しました';
    }

    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);

    return $data['weather'][0]['description']; // 天気の概要を返す
}

この関数をテーマ内で呼び出せば、ページ上に「晴れ」「曇り」などの天気情報を表示できます。

POSTリクエストで外部サービスに通知する

外部サービスへ情報を送る場合は wp_remote_post() を使用します。

例えば記事が公開されたらSlackに通知を送るコードは、以下のようになります。

function notify_slack_on_publish($post_id) {
    if (get_post_status($post_id) !== 'publish') return;

    $webhook_url = 'YOUR_SLACK_WEBHOOK_URL';
    $post        = get_post($post_id);

    $message = [
        'text' => '新しい記事が公開されました: ' . $post->post_title,
    ];

    wp_remote_post($webhook_url, [
        'body'    => json_encode($message),
        'headers' => ['Content-Type' => 'application/json'],
    ]);
}
add_action('publish_post', 'notify_slack_on_publish');

これを実装すれば、新しい記事が公開されるたびにSlackへ自動通知が送信されます。

キャッシュを活用して安定化

外部APIは呼び出し回数に制限(レートリミット)がある場合が多いため、毎回リアルタイムにアクセスするとエラーになったり表示が遅くなったりする可能性があります。

そのため、Transients API を使ってレスポンスをキャッシュしておくのが実践的です。

function get_cached_weather() {
    $cache_key = 'tokyo_weather';
    $weather   = get_transient($cache_key);

    if ($weather === false) {
        $weather = get_tokyo_weather(); // APIから取得
        set_transient($cache_key, $weather, HOUR_IN_SECONDS); // 1時間キャッシュ
    }

    return $weather;
}

こうすることで、外部APIへのアクセス頻度を減らし、安定した表示が可能になります。

外部API統合のメリット
  • 独自機能を柔軟に追加できる
  • プラグインに頼らず軽量に実装できる
  • サイトを自動化し、管理コストを削減できる

ただし、APIキーの管理(wp-config.phpに記述するなど)や、通信のセキュリティ(HTTPS必須)には注意が必要です。

API実装のベストプラクティス(セキュリティ・パフォーマンス対策)

APIをWordPressに実装すると、サイトの機能は大きく広がります。

一方で、セキュリティの脆弱性やパフォーマンス低下を招くリスクもあります。

特に外部サービスとやり取りする場合は「安全に、かつ効率的に」実装することが不可欠です。

ここでは必ず押さえておきたいベストプラクティスを整理します。

要点チェックリスト
  • APIキーは安全に保管する
  • HTTPSで暗号化通信を行う
  • 失敗を想定したエラーハンドリングを実装する
  • レスポンスはキャッシュして効率化する
  • 入力データは必ず検証する
  • サーバー負荷を意識して設計する

認証情報の安全な管理

APIキーやシークレットキーは、絶対にコード内に直接書き込まないようにしましょう。

公開リポジトリにアップロードされると、不正利用の原因になります。

実践的な方法としては

  • wp-config.php に定義する
  • サーバー環境変数に保存する
  • Options APIに保存する場合は暗号化を検討する

こうすることで、第三者に漏洩するリスクを大幅に減らせます。

HTTPS通信を徹底する

APIの通信には、必ずHTTPSを利用してください。

暗号化されていないHTTP接続では、認証情報やユーザーデータが盗聴される危険があります。

特に、決済や個人情報を扱うサービスと連携する場合は必須です。

エラーハンドリングの実装

API通信は、必ず成功するとは限りません。

タイムアウト、認証エラー、レート制限など、さまざまな理由で失敗する可能性があります。

失敗時に「白い画面」や「エラーコードだけ」が表示されないよう、

  • is_wp_error() でエラーチェックをする
  • ユーザー向けには「再度お試しください」などわかりやすいメッセージを出す
  • 開発者向けには error_log() で詳細を残す

といった工夫が必要です。

レスポンスのキャッシュ

外部APIを頻繁に呼び出すと、サイトの表示速度が低下したり、利用制限に引っかかる可能性があります。

そのため、Transients API を使ってレスポンスをキャッシュしておくことを強く推奨します。

キャッシュ時間は、データの更新頻度に合わせて調整しましょう(例:天気情報は1時間、ニュース記事は10分など)。

入力データの検証

外部から受け取ったデータをそのまま処理すると、XSS(クロスサイトスクリプティング)やSQLインジェクションのリスクが生じます。

WordPressには sanitize_text_field()esc_html() などのサニタイズ関数が用意されているため、必ず活用しましょう。

サーバー負荷の軽減

大量のAPIリクエストが同時に走ると、サーバーに大きな負荷がかかります。

以下のような工夫を取り入れると安心です。

  • バッチ処理やCronを活用してバックグラウンドで実行する
  • 不要なリクエストをまとめる
  • 必要なデータだけを取得する(GraphQLやクエリパラメータで絞り込む)

実際のユースケース例(天気予報・Slack通知・ECサイト連携など)

WordPressにAPIを実装すると、単なるブログから「便利なアプリケーション」へと進化させることができます。

ここでは代表的なユースケースを紹介し、実際にどのように応用できるのかをイメージしてみましょう。

天気予報を表示するサイト

旅行ブログや地域情報サイトでは、「今の天気」や「週間予報」を表示できると便利です。

OpenWeatherMap APIを使えば、以下のようにして現在の天気を取得し、サイトに埋め込むことができます。

function get_weather($city = 'Tokyo') {
    $api_key  = 'YOUR_API_KEY';
    $endpoint = "https://api.openweathermap.org/data/2.5/weather?q={$city}&appid={$api_key}&lang=ja";

    $response = wp_remote_get($endpoint);
    if (is_wp_error($response)) return 'データ取得に失敗しました';

    $data = json_decode(wp_remote_retrieve_body($response), true);
    return $data['weather'][0]['description'] ?? '情報なし';
}

この関数をテーマ内で呼び出せば、「東京の天気: 晴れ」といった情報を表示できます。

Takuma

地域ポータルサイトなどで重宝されるでしょう。

Slack通知でチームに共有

複数人で記事を更新しているサイトでは、新しい投稿が公開されたときにSlackへ自動通知すると便利です。

以下のコードを実装すれば、記事公開と同時にチームに通知が送信されます。

function notify_slack($post_id) {
    if (get_post_status($post_id) !== 'publish') return;

    $url  = 'YOUR_SLACK_WEBHOOK_URL';
    $post = get_post($post_id);

    $message = [
        'text' => "新しい記事が公開されました: {$post->post_title}\n" . get_permalink($post_id)
    ];

    wp_remote_post($url, [
        'body'    => json_encode($message),
        'headers' => ['Content-Type' => 'application/json'],
    ]);
}
add_action('publish_post', 'notify_slack');
Takuma

これによりチーム全体が最新の動きを把握しやすくなります。

ECサイトでの在庫管理連携

WooCommerceを使ったECサイトでは、在庫情報を外部システムと同期したいケースが多いです。

例えば、倉庫システムが提供する在庫APIと連携すれば、「商品ページの在庫数を自動更新」できます。

function update_stock_from_api($product_id) {
    $response = wp_remote_get('https://api.example.com/stock/' . $product_id);
    if (is_wp_error($response)) return;

    $data  = json_decode(wp_remote_retrieve_body($response), true);
    $stock = $data['stock'] ?? 0;

    wc_update_product_stock($product_id, $stock);
}

これをCronと組み合わせれば、1時間ごとに自動更新が可能になります。

結果として「在庫切れによるトラブル防止」につながります。

その他の応用アイデア

項目詳細
メールマーケティングMailchimp APIと連携し、新規ユーザーを自動的にリストに追加する
Google Analytics連携API経由でアクセス数を取得し、管理画面にダッシュボードを作る
チャットボットとの連携LINEやMessenger APIを利用し、サイト訪問者に自動応答を行う
Takuma

こうした事例を通じてわかるのは「APIを使うとWordPressは単なるCMSではなく、業務効率化や集客に役立つシステムへと進化する」という点です。

WordPressでAPIを実装してサイトの可能性を広げよう!

WordPressでAPIを実装することは、単に外部サービスと連携するための技術ではありません。

それは「WordPressをCMSからアプリケーション基盤へと進化させる第一歩」と言えます。

今回紹介したように、APIを活用すれば

  • 外部サービスのデータを取り込み、サイトをより便利にできる
  • 記事公開や在庫更新などを自動化し、作業効率を大幅に改善できる
  • ユーザー体験を向上させ、競合との差別化につながる

といったメリットがあります。

特に初心者の方は、まず「小さな実装」から試すのがおすすめです。

天気予報を表示する、Slackに通知を送る、といった身近な例ならすぐに効果を実感できます。

その後、WooCommerceや外部システム連携などへ応用すれば、ビジネスに直結する機能拡張も可能です。

重要なのは、セキュリティとパフォーマンスに配慮しながら堅実に実装すること。APIキーの安全管理、キャッシュの活用、エラーハンドリングなどを徹底すれば、安心してAPIを運用できます。

WordPressは世界中で利用されるプラットフォームですが、その可能性はAPIを実装することでさらに広がります。

Takuma

あなたのサイトでもぜひ一歩踏み出して、API連携の力を体験してみてください。

AmazonKindle
📘 『AI時代のテクニカルSEOの教科書』無料公開中!
AI要約・ゼロクリック検索・構造化データ・インデックス管理…
「検索流入が減った」と感じている方にこそ読んでほしい、最新SEO戦略を体系的にまとめた1冊です。
✔️ AI時代のSEOの本質とは?
✔️ 今すぐできるテクニカル改善とは?
✔️ Googleに拾われるサイト構造とは?
👉 今すぐダウンロードして、SEOの“次の一手”を見つけてください。
【完全版】WordPressサイトにAPIを実装する方法!REST API・外部連携・プラグイン開発の基礎から応用まで

この記事が気に入ったら
いいね または フォローしてね!

この記事を書いた人

Takuma Oka Takuma Oka 外資系SEOスペシャリスト

SEO・AI・web3が大好きなWebマーケターです。フィリピン(マニラ)外資系企業で『日本人SEOスペシャリスト』としてフルリモート勤務。サイトM&AやKindle出版、Udemy講師の経験も。元航空自衛官。主に東南アジア諸国を拠点にしています。SEO歴は9年目です。趣味は、中国語の勉強とランニング。

目次