Upload
takayuki-miyauchi
View
5.806
Download
2
Embed Size (px)
DESCRIPTION
2013/03/16 のWordBench
Citation preview
アプリケーションプラットホームとしてのWordPress
2013/03/16WordBench Osaka
Takayuki Miyauchi@miya0001
13年3月17日日曜日
自己紹介
13年3月17日日曜日
✓ 和歌山県の串本町っていうすごい田舎にすんでます。
13年3月17日日曜日
✓ フリーで仕事してますが、株式会社デジタルキューブのバックエンドエンジニアとしても仕事してます。
デジタルキューブは、Amazon Web Serviceの公認コンサルタントです。
13年3月17日日曜日
✓ WP Total Hacks
✓ TinyMCE Template
✓ Child Pages Shortcode
✓ Nginx Cache Controller
プラグイン作ってます!
まもなくスロバキア語に対応
14ヶ国語目です!
13年3月17日日曜日
開発にたずさわりました!
13年3月17日日曜日
twitter: @miya0001
13年3月17日日曜日
blog: firegoby.jp
13年3月17日日曜日
今日のお題
13年3月17日日曜日
WordPressで作れるのはブログや企業サイドだけじゃない!
アプリケーションプラットホームとしてのWordPress!
13年3月17日日曜日
✓ 小さなプラグインを組み合わせてレゴのようにサービスを作ろう!
✓ プラグインとテーマを上手に分離してプログラマとデザイナーの分業をうまくやろう!
✓ BuddyPress?なにそれ?
13年3月17日日曜日
✓ ただし、とてもプラグラマーチックな話なのでかなり省略します。
✓ 詳しく知りたい方は、ソースを見てください。
13年3月17日日曜日
サンプルプラグインのダウンロード
http://bit.ly/wbosaka
13年3月17日日曜日
サンプルサイト
http://bit.ly/wbosaka-demo
13年3月17日日曜日
ログイン画面をバリバリにカスタマイズする
13年3月17日日曜日
たとえばメンバー制のサービスを作る場合
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
✓ まずユーザー登録の機能が必要だね。=> WordPressに最初からあるじゃん。
✓ ログインとかのUIは?=> WordPressに最初からあるじゃん。
✓ セキュリティは?=> WordPressはパスワードとか暗号化して保存してるし、セッションとかもおまかせでいいんじゃん。
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
というわけでサンプルのプラグインを作ってきました。
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
ウインドウのサイズに合わせて伸び縮みする背景画像さらにスライドにもなってるんだぜー
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
✓ このプラグインでやってることは概ね以下の2つです。‣ ログイン画面にカスタムCSSとカスタムJSを適用。
‣ サインアップ時などにユーザーに送信されるメールのカスタマイズ
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
- login-costomizer- login-customizer.php // プラグイン本体- cover-photos // スライド画像- includes
- pluggable.php // メールのカスタマイズ- js // JavaScript- css // CSS
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
3つのフックを使ってます!
✓ login_enqueue_scriptsログイン画面にCSSとJavaScriptを適用
✓ login_footerスライド用の画像の配列のJavaScriptを出力
✓ registration_errorsadminとかrootとか、登録してほしくないユーザー名を拒否
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
✓ あと、includes/pluggable.phpでユーザーに送信されるメールの本文をカスタマイズしてます。
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
実際に運用する際には画像とかCSSとかはケースバイケースで変わりますよね。
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
おや?デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
フィルターフックを仕込んどきました!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
✓ たとえば文章とか画像のパスとかにはフィルターフックを仕込んでおくと、テーマ側で後から変更できるので、実装に集中できますよ!‣ 数字とか
‣ パスとか
‣ 文章とか
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
テーマのfunctions.phpによるカスタマイズ例http://bit.ly/13YT5Ls
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
ここまでのまとめ
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
✓ 細かいことはフィルターフックでお茶を濁して実装に集中!
✓ デザイナーさんは apply_filters っていうのを見つけたらしめしめと思うべし!
✓ 実は公式ディレクトリ上のプラグインでも隠れフックはいっぱいあります!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
✓ デザイナーのみなさんフィルターフックを覚えたらカスタマイズの幅が広がります!
apply_filters(‘my_login_stylesheet_uri’, ‘http://example.com/style.css’);
add_filter(‘my_login_stylesheet_uri’, ‘my_theme_style’);
function my_theme_style($stylesheet) { return ‘http://example.com/my-style.css’;}
正規表現っていうのを使って置換もできますけど、それはプログラマーに頼んじゃおう!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
✓ そして何よりも!フックを適切に仕込めば、そのプラグインをどこでも流用できるじゃん!
オレオレプラグインをいくつか用意すれば、レゴのように組み合わせていろいろ作れそうですよね!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
WordPressのRewrite APIをマスターして
パーマリンクの魔術師になろう!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
意外と簡単です。add_rewrite_endpoint(‘demo’, EP_ROOT);
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
ただしコツがある!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
add_rewrite_endpoint(‘demo’, EP_ROOT);で、http://example.com/demo/ でアクセスできます!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
パーマリンク設定はキャッシュされてるのでキャッシュを初期化する必要があります。
flush_rewrite_rules();
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
そして超大事なこと!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
キャッシュのフラッシュはプラグインを有効化した時に1度だけ行う!
register_activation_hook()はそのためのフックです!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
もうひとつ
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
register_deactivation_hook() を使ってプラグインを無効化した時にも初期化!忘れると意味不明なことになります。。。
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
残りは3つのフックで
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
この3つのフックにアクションを追加する
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
デモサイト: http://bit.ly/wbosaka-demo
init フックで、もう一回、add_rewrite_endpoint() を実行!
ただし自分を無効化するときには、なにもしない!
13年3月17日日曜日
query_vars フックで demo を追加してあげる
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
template_redirect フックでコンテンツを出力
デモサイト: http://bit.ly/wbosaka-demo
コンテンツを出力
13年3月17日日曜日
この条件分岐で true ならそのURLでアクセスがあったということ
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
http://example.com/demo/hogehogeみたいな不要なURLでは、404を返す。
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
コンテンツを出力するところexit で止めちゃうとこがミソ
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
つまりWordPressのテンプレートタグがそのまんま使えちゃうんです!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
ここまでのまとめ
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
✓ add_rewrite_endpoint() という関数で、WordPressから独立したウェブアプリが作れます。
✓ でもWordPressの機能はそのまま使えます!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
✓ ってことはですね。サービスサイトとサービスそのものをまったく別々に開発出来ます!
✓ デプロイは、管理画面からアップロードするだけ!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
サービスを作っちゃおう!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
つくったサービス
オレオレEvernoteみたいなサービスです。
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
自慢じゃないですが、1日で作りました。(自慢ですけど)
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
カスタム投稿タイプ使ってます!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
コンテンツの保存はこれだけ。
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
コンテンツの出力はこれだけ。htmlはエスケープした上で
the_content っていうフィルターフックを通してます!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
なんで the_content フィルターを通したんだ?
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
✓ oEmbedやショートコードが使えるから超簡単に外部サービスのコンテンツが表示されちゃうからです!
✓ 一方でユーザーが入力したHTMLはエスケープしてます!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
まとめ
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
✓ WordPressを使うと他にもメリットはいっぱい!‣ 多言語化が簡単!
‣ くわしい人がいっぱい!
‣ セキュリティはWordPressにおまかせ!
デモサイト: http://bit.ly/wbosaka-demo
13年3月17日日曜日
ありがとうございました!
13年3月17日日曜日