2026年6月16日

2026年6月16日

WordPressのLaravel + Inertia.js連携方法

はじめに

この記事では、従来のWordPressとLaravelフレームワークを使用してWebサイトを作成し、Inertia.jsを利用してSPA(Single Page Application)風のユーザー体験を提供する方法について説明します。これにより、より高速でスムーズなUI/UXが実現できます。

症状・背景

このテーマが必要になる主な場面:

  • WordPressを既存のCMSとして使用しているが、SPAのようなモダンなユーザー体験を提供したい場合
  • LaravelフレームワークとInertia.jsを利用して既に開発環境を整えているが、WordPressとの連携を模索している場合
  • 従来のWebサイトでのページ遷移時のローディング時間を改善し、高速化を図りたい場合

手順・設定方法

ステップ1: Laravelプロジェクトの作成と初期設定

# まず、新しいLaravelプロジェクトを作成します。
laravel new wp-laravel-inertia

# WordPressとの通信を行うため、composerでwp-remote-clientパッケージをインストールします。
composer require laravel/tinker wp-api/wp-remote-client

ステップ2: Inertia.jsのセットアップ

# LaravelプロジェクトにInertia.jsとVue.jsを追加する
npm install @inertiajs/inertia @inertiajs/inertia-vue3 vue

# Vueコンポーネントを作成し、Inertia.jsを使用して初期設定を行います。
touch resources/js/Pages/Home.vue

ステップ3: WordPressとの連携設定

# Laravelプロジェクト内にwp-config.phpを設置します。これはWordPressのAPIキーとURL情報を含みます。
cp /path/to/your/wp-config.php .env

# wp-remote-clientを使用して、LaravelからWordPress APIへアクセス可能にするための設定を行います。
php artisan make:command WpCommand --plain

ステップ4: 設定を実践し、問題解決を行う

# 作成したコマンドファイルwp-command.phpに以下のようにコードを追加します。これにより、LaravelからWordPressへのAPI呼び出しが可能になります。
namespace App\Console\Commands;

use Illuminate\Console\Command;
use WP_Rest_API_Client\ClientFactory;

class WpCommand extends Command
{
    protected $signature = 'wp:call {url}';
    protected $description = 'Call WordPress REST API';

    public function handle()
    {
        // ローカル環境のWordPressサイトに接続します。
        $client = (new ClientFactory())->create('http://localhost/wordpress', [
            'consumer_key' => 'your-key',
            'consumer_secret' => 'your-secret',
        ]);

        // 指定されたURLでGETリクエストを実行し、レスポンスを表示します。
        $response = $client->get($this->argument('url'));
        echo json_encode($response, JSON_PRETTY_PRINT);
    }
}

注意事項

  • セキュリティ上の注意: WordPressとLaravel間での通信はSSLで保護されていることを確認してください。また、APIキーの管理にも十分に注意を払ってください。
  • パフォーマンス/運用上の注意: Inertia.jsを使用すると、ページ読み込み時に小さな遅延が生じることがあります。これは通常のブラウザキャッシュと同様の問題であり、適切なCDNやキャッシュ戦略で解決可能です。

まとめ

1. Laravelプロジェクトの作成: Laravel CLIを使って新しいプロジェクトを作ります。

2. Inertia.jsのインストール: Vue.jsと共にInertia.jsをnpmでインストールします。

3. WordPressとの連携設定: wp-remote-clientを通じて、LaravelからWordPressへのAPIアクセスを可能にします。

4. セキュリティとパフォーマンス管理: APIキーの適切な管理とCDNやキャッシュ戦略により、セキュリティとパフォーマンスを確保します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ