フレームワークユーザーがボヤっと抑えておきたいWordPressの特徴と使いどころ

2013.02.27 | 玄人向け | 覚えておきたい
スポンサードリンク

みなさんお久しぶりね。バレンタインのチョコはあげるとももらうとも言い切れないネカマのWP-D グレーよ。一回お休みしちゃったからキャラ設定を念押ししておくわね。

さてさて、最近Webサイトを作るときはなんらかのフレームワーク(以下FW。FireWorksじゃないわよ)を採用することが多いわよね。言われてみると、「Ruby on Railsを勉強してエロサイトを作った」っていうエントリーをはてな界隈で10回ぐらい見かけた気するでしょう? プログラミング初心者にとってはWebサービスを作るハードルがすごく下がったわよね。

大手サイトでもCookpadがRuby on Railsとか、InstagramがDjangoとか、GreeがEthnaとか、車輪の再発明を避けるべくなんらかのフレームワークを採用してるわ(Greeは自前FWだけど)。

そんなFWの使い手が抑えておくと色々捗るぞっていうWordPressの特徴をボヤっと紹介するわね。

情報発信をするだけのサイトならWordPressが早い

FWで一度でもサイトを作ると「RoR生産性高過ぎ! WordPressって自由度の低いCMSでしょ? 使う意味ある?」という万能感に満ちた考えが浮かんでくるかもしれないわね。でもDon’t Repeat Yourselfよ。

ログインしたユーザーがフォローしたりfavったりどうこうとか、Rで統計処理挟んで俺の機械学習が怒髪天とかなると色々めんどうだけど、限られた人にだけ更新される情報発信サイトならWordPressで作った方が早いわね。

典型的な例としては、Cookpadのコーポレートサイトね。CookpadのサービスサイトがRuby on Railsというのは有名だけど、会社のサイトはWordPressよ。

CookpadのコーポレートサイトはWP

CookpadのコーポレートサイトはWP

あとは、ニュースサイトとか地域情報ポータルとか、「限られた人が更新する情報発信サイト」はWordPressで作った方が早いと思うわ。学習コスト込みでも多分早いわよ。ちょうど、WordPress 3.x (速習デザイン)
っていう素敵な本があるから、参考にしてみてね。

WordPress自体はMVCじゃないわよ

FWを使う人のスキルレベルも色々だと思うんだけど、FWでWebシステム開発をはじめて経験したっていう人はWordPressの特徴がちょっと掴み辛いかもしれないわね。ざっと挙げると違いはこんな感じよ。

ルーティング

FWはURLで特定のコントローラーのメソッドが呼び出されるけど、WordPressはURLを見て取得するデータと使用するテンプレートまで決定しちゃうわ。この部分についての概説はCodexのクエリ概要に載ってるから、「カスタマイズしちゃうぜ〜」っていうワイルドな人(古)は読んでみてね。

ORマッパーなし

Ruby on RailsのActiveRecordみたいにFWにはデータベースアクセスを抽象化したORマッパーがあるけど、WordPressにはないわ。WP_Query, WP_User_Query, WP_Comment_Query なんかのクラスを使ってWordPress独自の「ループ」を作る必要があるのよね。

他に *_option, *_user_meta, *_post_metaなんかの関数があって(*にはget, add, delete, updateが入るわ)、それぞれのデータに関連する値のCRUDが提供されているの。

それ以外の方法でデータベースをどうにかしたいっていう場合、基本はSQL文ベタ書きになるわ。もともとWebプログラミングやってましたっていう人なら問題ないと思うけど、FWからWebプログラミングの世界に入った人にはちょっときつい仕様よね。

動的にSQLを生成してセキュリティホールを生みまくって徳丸先生に指摘されないよう気をつけてね。

クラスの継承じゃなくてフック

FWは基本的にクラスを継承していく形で機能を追加していくけど、WordPressはそういうオブジェクト指向っぽい仕組みを部分的にしか採用していないから、基本的にはフックという仕組みでWordPressの処理に割り込んでいく感じになるわね。

どういうフックが利用できるかはCodexのフックAPIを確認してね。もちろん、ここに記載されていないフックも沢山あるから、ソースを追っかけてフックを見つけていくスキルも身につけていく必要があるわね。

管理画面はついてるわよ

WordPressは元々ブログシステムだから、管理画面とログインシステムはついてるわよ。ただし、ユーザーごとの権限をカスタマイズしたり、グループを導入したりすると、それなりに複雑な処理が必要になるからそこは覚悟してね。

もっとも、これはFWを使ったところで同じことだとは思うけど。

 

ざっと、すでにフレームワークを利用しているユーザーが抑えておいた方がいいWordPressの特徴について述べてみたわ。PHPフレームワークの使い手なのか、それ以外なのかでWordPressを採用するアドバンテージも変わってくる(RubyならJekyllとか)とは思うけど、参考にしてね。

おまけ

http://www.cookpad.co.jp っていうドメインがWordPressなんだけど、これってなにか触れてはいけないものなのかしらね。