WordPressとは何か。
一般的にはコンテンツ管理システム( CMS )として扱われているはずだ。

ただし、プラグインやテーマのカスタマイズによって幅広くいじることができ、CMSとしての使い方以外をするケースもちらほらある。WooCommerceによるECサイト構築や、bbPressによるフォーラム構築もそういった例となるだろう。そんな意味合いだと、開発フレームワークの一種としても扱える。

そういった観点だと、

  • ユーザー管理
  • 画面の描画
  • 管理画面

を備えた状態であり、さらには

  • Web APIの設置

も簡単にできるフレームワークと言えそうだ。

それぞれに関して具体的に説明すると、

ユーザー管理

WordPressはユーザー情報をデータベース内に保持している。
権限も設定でき、使用可能な機能に制限をかけられる。
ブログとしての運用だとあまり意識することのない機能かもしれないが、ユーザー登録を自由に許可することも可能だ。

ログインを司るプラグインもいくつか存在し、例えばPassLogy製のPassClip Auth for WordPressではスマホアプリと絡めたセキュアなログインをかなえつつ、初回ログイン時の新規ユーザー登録やその際の権限設定も可能にしている。権限を「権限なし」にすることも可能で、その場合は管理画面(/wp-admin/)にアクセスすることも出来ない。is_user_logged_in()による分岐で事足りる場合は重宝する。

ユーザーごとに情報を保存したい場合は、wp_usermetaテーブルを用いると、SQL文を意識しないでWordPressの関数(update_user_meta()等)のみで記述できる。SQL用のエスケープ処理も含んでいるので、簡潔な記述が可能だ。追加した値はindexが張られることはないので、用途によっては別にテーブルを作ったほうがいいこともある。

画面の描画

そもそもCMSなので、当然UIを保持している。
様々なテーマから好きなものを用いることもできるので、外見を作りこむ場合も手間の削減につなげられるだろう。
余分な機能が邪魔になるかもしれない場合や、軽量なものが欲しいのであれば、ブランクテーマ(WordPressとしての動作に必要な最低限がそろっているオリジナルテーマ作成用のベース)を見つけてくるのも面白い。

どちらにせよ、ゼロからUIを作るよりはかなり楽ができるとは思う。

管理画面

WordPressのもともとの管理画面ももちろんそのまま使用できる。
登録ユーザーの一覧や、各種画面に固定ページや投稿ページを利用する場合はそれの編集も簡単にできる。

自分はあまり利用しないが、ユーザーに与える権限によっては管理画面をカスタマイズしても様々な使い方ができることだろう。

Web APIの設置

Web Pushを実装した時にも利用したadmin-ajax.phpを用いると、サーバーサイドで任意の処理を実行できる。
これによって、元のWordPressとは全く異なる処理を自由に記述できる。もちろんWordPressの関数自体は利用できるので、各種エスケープ処理が楽になったり、wp_remote_post等で外部APIを叩くことも可能だ。

これだけそろっているので、
 ユーザー登録 → 何らかのユーザーの行動、結果の保存 → 保存結果の閲覧
くらいなら簡単に組めることになる。…

Passlogy社員専用ページです。ログインして続きを読む。