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 と同じ)。無効なプラグインのページは、ビルドに含まれません。