本文へスキップ

Plugins

プラグイン

WordPress と同じく、機能はプラグインで足します。違いは、ひとつのプラグインが「管理画面側(Laravel)」と「サイト側(Next.js)」の両方を持てること。管理画面で有効にすれば、次のビルドからサイトにも反映されます。

プラグインでできること

Laravel

管理画面側

  • adminRoutes()

    管理画面のページ

    /admin 配下に画面を追加

  • menu()

    サイドバーのメニュー

    管理画面のメニューに項目を追加

  • dashboardWidget()

    ダッシュボード

    ダッシュボードにウィジェットを追加

  • migrations()

    テーブル

    プラグイン専用のテーブルを作成

  • apiRoutes()

    公開 API

    静的ビルドが読む API を追加

  • mcpRoutes() / mcpScopes()

    MCP ツール

    AI エージェント向けのツールと権限を追加

  • artisan() / schedule()

    コマンドと定期実行

    データ取り込みなどの定期ジョブ

  • publicSettings() / frontendEnv()

    設定の受け渡し

    サイトへ渡す設定値・環境変数

Next.js

サイト側

  • routes/

    サイトのページ

    公開サイトに新しいページ群を追加

  • nav / footerLinks

    ナビゲーション

    ヘッダー・フッターにリンクを追加

  • slots

    差し込み位置

    記事の下・トップ末尾などに部品を差し込む

  • sections

    トップページの部品

    固定ページのセクションの種類を追加

  • sitemap

    サイトマップ

    追加したページを sitemap.xml に載せる

  • tracking

    クリック計測

    CTA クリックの分類ルールを追加

フック 17

インストール・ビルド・プラグインの有効化・計測イベントなどのタイミングで、処理を差し込めます(WordPress の action / filter と同じ考え方)。

  • cms.core.installed
  • cms.core.upgraded
  • cms.core.booted
  • cms.setup.completed
  • cms.plugin.installed
  • cms.plugin.enabled
  • cms.plugin.disabled
  • cms.plugin.updated
  • cms.build.before
  • cms.build.after
  • cms.frontend.env
  • cms.public_settings
  • cms.page.section_types
  • cms.mcp.tools
  • cms.mcp.scopes
  • cms.tracking.event_recorded
  • cms.tracking.conversion_recorded

プラグインの例

  • 同梱

    キャンペーン LP

    外部の LP ツールから取り込んだキャンペーンページを管理・計測します。

  • 同梱

    Hello World

    プラグインの雛形。管理画面・API・サイト側の最小構成を確認できます。

  • 自社メディアで運用中

    地域別ディレクトリ

    都道府県・市区町村・駅ごとの一覧ページと詳細ページ、データの取り込みまでを一つのプラグインで。

作る・入れる・配る

  • php artisan plugin:make my-feature --frontend

    雛形を作る(管理画面側 + サイト側)

  • php artisan plugin:list

    発見済みのプラグインと状態

  • php artisan plugin:enable my-feature

    有効化(テーブルも作成)

  • php artisan plugin:install plugin-my-feature.zip --enable

    配布用 zip を配置して有効化

  • ./scripts/package.sh --plugin my-feature

    配布用 zip を作る

プラグインの構成
laravel/plugins/my-feature/
├── plugin.json          # id・名前・バージョン・必要なコア
├── src/Plugin.php       # 管理画面・API・MCP・ジョブの登録
├── routes/              # admin.php / api.php / mcp.php
└── database/migrations/

frontend/src/plugins/my-feature/
├── plugin.ts            # ナビ・フッター・計測ルール
├── plugin.server.ts     # 差し込み・セクション・sitemap
└── routes/default/      # サイトに追加するページ

無効にしてもデータは残ります(WordPress と同じ)。無効なプラグインのページは、ビルドに含まれません。