本文へスキップ本文へスキップ
WordPress

WordPress、実は何でもできる説。Webサイト以外に何が作れるのかAIに聞いてみた

WordPress、実は何でもできる説。Webサイト以外に何が作れるのかAIに聞いてみた
目次

WordPress、実は何でもできる説。Webサイト以外に何が作れるのかAIに聞いてみた

自分はこれまでWordPressをかなり触ってきました。

ただ、使い方を振り返ると、ほとんどがWebサイト制作です。

企業サイトを作る。 記事を投稿できるようにする。 カスタム投稿や管理画面を使いやすくする。

そういう使い方が中心でした。

でも、改めてWordPressを見ると、最初からかなり多くのものを持っています。

投稿を管理する仕組み。 ユーザー管理。 権限。 データベース。 管理画面。 URLのルーティング。 プラグインで機能を増やす仕組み。 そしてREST API。

そこでふと、

WordPressって、普通のWebサイト以外だと何が作れるんだろう?

と思いました。

AIにも聞きながら公式ドキュメントを確認してみると、思っていた以上に守備範囲が広いです。

一方で、ここまでできるなら別の疑問も出ます。

そんなに何でもできるなら、なぜNext.jsやAstroでフロントを分ける構成があるの?

今回は、WordPressで何ができるのかを整理しつつ、最後に「何でもできる」と「何でもWordPressだけで作るべき」は別、というところまで考えてみます。


WordPressは「ブログを書くもの」だけではなかった

WordPress公式のFeaturesページでは、開発者向け機能の中でWordPressをApplication Frameworkとして使えることにも触れています。

ユーザー管理、HTTPリクエスト、データベース、URLルーティングなど、アプリケーションを作るときに必要になる機能をWordPressが持っているからです。

参考: https://wordpress.org/about/features/⁠(外部サイト)

もちろん、WordPressをLaravelやNode.jsのような汎用Webアプリケーションフレームワークとまったく同じものとして扱うわけではありません。

ただ、

記事を投稿するCMS

だけで考えると、WordPressの機能をかなり狭く見ていることになります。

自分も長く使っているのに、そこはあまり意識していませんでした。

WordPress、実は何でもできる説。Webサイト以外に何が作れるのかAIに聞いてみた

ECサイトも作れる

分かりやすい例がECです。

WordPressはプラグインで機能を追加できるので、商品、カート、注文、決済などを持ったECサイトへ拡張できます。

ここで面白いのは、WordPressの「投稿を管理する」という考え方が、記事以外のデータにも広げられることです。

たとえば、

  • 商品

  • ブランド

  • 店舗

  • キャンペーン

  • お知らせ

のようなデータを管理画面から扱えるようにできます。

単純なブログCMSより、かなりアプリ寄りの使い方です。


会員サイトや限定コンテンツ

WordPressはユーザーと権限の仕組みを持っています。

そのため、

  • ログインした人だけ見られるページ

  • 会員ランクによって表示を変える

  • ユーザーごとのマイページ

  • 管理者だけ編集できるデータ

のような仕組みも作れます。

WordPress REST APIのUsersエンドポイントにもユーザーやrole、capabilityに関する仕組みがあります。

参考: https://developer.wordpress.org/rest-api/reference/users/⁠(外部サイト)

もちろん、認証や個人情報を扱うなら、セキュリティ設計は別途しっかり考える必要があります。

「ユーザー機能があるから簡単に安全な会員サービスが完成する」という話ではありません。

それでも、ユーザー管理をゼロから作らなくていいのはWordPressの強いところです。


予約・求人・店舗検索のような「データベース型サイト」

WordPressにはCustom Post TypeやTaxonomyがあります。

たとえば、

式場
求人
店舗
イベント
物件
スタッフ
講座

のようなデータを、それぞれ独立したコンテンツとして管理できます。

Custom Post TypeをREST APIへ公開することもでき、公式ドキュメントでは register_post_type の show_in_rest を有効にする方法が案内されています。

参考: https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-rest-api-support-for-custom-content-types/⁠(外部サイト)

自分はWordPressを使うとき、こうした「記事ではないデータ」を扱うこともあります。

よく考えると、ここまで来るとかなりCMSというより管理システムに近いです。


社内ツールの管理画面として使うこともできる

WordPressの管理画面は最初からかなり完成しています。

一覧。 編集。 ユーザー。 権限。 メディア。 検索。

そのため、小規模な社内ツールや情報管理の画面として使う考え方もできます。

たとえば、

  • 案件情報

  • 店舗データ

  • FAQ

  • マニュアル

  • イベント情報

などです。

ただし、複雑な承認フロー、大量データ、高いリアルタイム性、細かい業務ロジックが必要になるほど、専用のシステムを作った方が自然になるケースも増えます。

ここは「作れる」と「向いている」を分けて考えたいところです。


モバイルアプリの裏側としてWordPressを使う

ここでREST APIが効いてきます。

WordPress公式はREST APIについて、WordPressのコンテンツを完全に別のアプリケーションへ持っていく使い方もできると説明しています。

参考: https://developer.wordpress.org/rest-api/⁠(外部サイト)

REST APIからJSONでデータを取得できるので、

WordPress
    ↓ REST API
Webフロント
モバイルアプリ
別システム

のように、WordPressを「コンテンツを管理する裏側」として使えます。

つまりWordPressのテーマで画面を表示しなくてもいい。

ここで初めて、自分の中でWordPressの見え方がかなり変わりました。

WordPressは画面までWordPressで作らないといけないわけではない。

ということです。


Headless WordPressという使い方

WordPressをCMSとして残し、画面をNext.jsやAstroなど別のフロントエンドで作る構成は、Headless WordPressと呼ばれます。

イメージとしては、

WordPress
管理画面・コンテンツ・ユーザー
            ↓ API
Next.js / Astro
フロントエンド

です。

WordPress側では編集者がいつもの管理画面を使える。

一方、フロント側はReactなどを使って自由に作れる。

これはかなり魅力があります。

WordPress、実は何でもできる説。Webサイト以外に何が作れるのかAIに聞いてみた

じゃあ、そんなに何でもできるのに、なぜNext.jsやAstroを使うの?

ここが今回一番気になったところです。

WordPressだけでWebサイトを完成させられるなら、わざわざ構成を分ける必要はないようにも見えます。

でも、フロントを分離したい理由はいくつかあります。

フロントエンドの設計をWordPressから独立させたい

Reactなどのコンポーネント設計を中心に開発したい場合、Next.jsのような環境の方が自然なことがあります。

Webサイト以外でも同じコンテンツを使いたい

同じ記事や商品データを、

Web
アプリ
デジタルサイネージ
別サービス

へ配信するなら、CMSと表示側を分けた方が扱いやすくなることがあります。

レンダリングやキャッシュの設計を選びたい

Next.jsは静的・動的なレンダリングを使い分けられます。

Astroも標準では静的HTMLを生成しつつ、必要なページだけオンデマンドレンダリングする構成を選べます。

つまり、表示側の技術選定をWordPressテーマの仕組みから切り離せます。

フロントとCMSを別々に進化させたい

CMSはWordPressのまま。

フロントはNext.jsから別のものへ。

あるいはWebとは別にモバイルアプリを追加する。

APIを境界にすると、それぞれを分けて考えやすくなります。


ただしHeadlessにすれば全部良くなるわけではない

ここは重要です。

分けるということは、管理するものも増えます。

WordPressだけなら、

WordPress
↓
公開

で済んでいたものが、

WordPress
↓ API
フロントエンド
↓
ビルド・デプロイ

になります。

さらに、

  • プレビューをどうするか

  • CMS更新時にどう再生成するか

  • API認証をどうするか

  • キャッシュをどう更新するか

  • 障害時にどこを見るか

なども考える必要があります。

小さなサイトなら、普通にWordPressテーマで作った方がシンプルなことも多いです。

WordPress公式のREST APIドキュメントにも、すでにWordPressサイトが期待どおり動いているなら、無理にREST APIを使う必要はないという趣旨の説明があります。

参考: https://developer.wordpress.org/rest-api/⁠(外部サイト)

ここはかなり納得しました。


「何でもできる」と「何でもWordPressでやる」は別

今回整理して一番感じたのは、

WordPressって思っていた以上に何でもできる。

ということです。

Webサイトだけではなく、

EC。 会員サイト。 予約。 求人。 店舗検索。 管理ツール。 モバイルアプリのCMS。 Headless CMS。

かなり幅があります。

一方で、

できるから、それを選ぶ。

では足りません。

小さな企業サイトならWordPressだけの方がシンプルかもしれない。

React中心のWebアプリならNext.jsの方が自然かもしれない。

静的な部分が多く、必要なところだけJavaScriptを使いたいならAstroが合うかもしれない。

結局大事なのは、

WordPressで作れるかではなく、今回の要件なら何をWordPressに任せるのが一番楽か。

だと思います。

自分もこれまではWordPressを「Webサイトを作るもの」として見ることが多かったのですが、今後は、

管理画面 + データ + APIを持った基盤

として考える場面も増えそうです。

過去の記事から 1 本

全 15 本のうち 8 本目の記事

about

このブログについて

Web 開発・インフラ・AI を手を動かして試した記録が中心です。うまくいった話もハマった話も、仕事や日々のこともそのまま書きます。