「WordCamp Osaka 2012」Webアプリ用カスタマイズに役立つセッション(by 野島さん)のメモ。
2012/11/03に大阪で行われた、「WordCamp Osaka 2012」に行ってきました。 今回かなり関係者の方々が頑張って宣伝されていたので、その成果があったのかものすごい数の方たちが来場していました。 同じ時間に複数セッションが組まれていたのですが、自分が参加したセッションの中で特に自分にとってためになったと思うセッションの自分用メモを掲載します♪
Session : エンジニアの為の WordPress入門 〜WordPressはWebAppプラットフォームです〜
@yuka2py / 株式会社フォーエンキー代表 野島祐慈さん
野島さんはプログラマーでありながらデザインのセンスもおありでとても羨ましいお方です。ご発想も豊かなので、予想以上のものをご提案いただけるかもしれないです。お人柄も優しい方なので、気持よくやり取り出来ると思います♪中国語や韓国語圏のサイト制作サービスもされるそうなので、ご興味ある方はぜひお問い合わせしてみてください♪^^
企業サイトやWebアプリを作る場合もWordPressは便利!
おすすめプラグイン
- キャッシュ「WC Total Cache」
- フォーム「Contact Form 7」
- ソーシャル投稿「WP Social Bookmarking Light」
- ソーシャル認証「Gianism」
- メルマガ「Subscribe2」
- バックアップ「BackWPup」
- データ永続化の拡張「Types」
- 3つのカスタム機能を一度に管理
(カスタム投稿タイプ、カスタムフィールド、カスタムタクソノミー) - 異なるカスタム投稿タイプに親子関係を持たせることが出来る
- 3つのカスタム機能を一度に管理
- SEO「All In One SEO Pack」※最新のSEOについては個々で勉強要
- 汎用サイトの機構
- 「BuddyPress(SNS)」
- 「Welcart e-Commerce(EC)」
- スマートフォン対応「WP Touch」
- フューチャーフォン対応「Ktai Style」
カスタマイズするためにはまずWordPressの仕組み理解が必要
- WordPressにはMVCでいうコントローラ的なものがなく、テンプレートが直接呼ばれる
- 処理割り込みのフック箇所と、表示テンプレ箇所がカスタマイズ可能箇所になる
- テーマのファイルは「wp-content/themes/利用テーマ/」に入れ、「style.php」にテーマのmeta情報記述
- 表示の優先順位があり、順番にチェックされ、該当テンプレがあればそれを表示。
参考:http://wpdocs.sourceforge.jp/テンプレート階層 - 「メインクエリ(URLに対応した記事を検索し表示するクエリ)」をフックで変更し取得内容を変更可能
- フックはドキュメントも豊富
参考:http://wpdocs.sourceforge.jp/プラグイン_API#Actions - フックにはアクションフックとフィルターフックの2種類ある
- アクションフック:WordPressのイベントや処理に応じてプログラムを実行する
- フィルターフック:入出力テキストなどのデータを加工する
- フックはドキュメントも豊富
データの永続化:投稿タイプ
データの永続化:カスタムフィールド
- 足りないデータを補う3つのメタテーブルは「postmeta(投稿用)」「commentmeta(コメント用)」「userdata(ユーザー用)」の3つ
- 「key/value」形式で各対象データに紐付いている
- PostgreSQLの配列型のように複数値も扱える
参考:http://wpdocs.sourceforge.jp/カスタムフィールドの使い方
- メリット
- アプリが扱うデータ内容の変更が比較的容易
- WPのレールの上で管理できる(他プラグインから扱える)
- デメリット
- DBクエリ増加∼処理速度 → キャッシュのプラグイン利用
- データの扱いがやや面倒 → 独自テーブル作成の方法あり(但しバックアップ系プラグインの恩恵が受けれなくなる)
WordPressアプリ制作事例
- コワーキングスペースMAGAZINE:全国のコワーキングスペース運営者のインタビュー公開
参考:コワーキングスペースMAGAZINE
- 動画・音声などはPodcastでも配信
参考:iTundes Podcast コワーキングスペースMAGAZINE - WordPressへ上げたmp3をPodcastへ配信する手順
- Blubrry PowerPress Podcasting プラグイン導入
参考:Blubrry PowerPress Podcasting Plugin
- iTunes StoreにPowPressで設定したPodCastフィードURLを登録
- Blubrry PowerPress Podcasting プラグイン導入
- 動画・音声などはPodcastでも配信
- Croppy:インターネット上の画像を手軽にクリップ、共有できるサイト 参考:Croppy
- Twitter/Facebookログイン(プラグイン利用)
- ユーザーのフォロー、お気に入り追加機能(functions.phpに記述)
- 管理画面を使わずに投稿(functions.phpに記述)
- ユーザの相互フォロー(ユーザーのメタデータに保存)
- ユーザの投稿に管理画面を使わせない
(admin_init にフックし、ユーザー権限をチェック、 管理者以外はトップページにリダイレクト‣ 独自のPHPファイルから WP への投稿) - 独自のPHPファイルからWordPressへ投稿
(wp-load.phpをロードし、WordPressのユーザー情報などを利用)
※WPのURLルーティング以外でも可能
WordPressに向いているアプリ、向いていないアプリとは?
- 向いているアプリ
- 何らかのコンテンツをストックし公開するサイト
- いわゆるWebサイトに必要な要件がたくさん詰まってる
(プラグインの利用で開発コストを低減)
- 向いていないアプリ
- 全く外向きに公開しない
- 複雑なデータ構造
- データの集計や計算が主題
- 管理画面のカスタマイズの比率が非常に多い
失敗しない方法
- すぐにプログラムで書かずに、プラグインを探す 参考:Plip「WordPressプラグインのクリップサイト」
- 今現在サーバーサイドのデータバリデーションはないので調べない
- DBスキーマ、テンプレートを眺めて、テンプレートタグ、構造や仕組みを先に理解しておく
- Googleで検索するよりもCodeXで検索
とりあえず最初に目を透しておく事!
参考:WordPress Codex 日本語版