O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio

Confira estes a seguir

1 de 39 Anúncio

テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする

Baixar para ler offline

WordBench 東京2016の発表資料です。WordPressでよく言われる「テーマは見た目、プラグインは機能」という言葉に対して真っ向から勝負を挑みます。

WordBench 東京2016の発表資料です。WordPressでよく言われる「テーマは見た目、プラグインは機能」という言葉に対して真っ向から勝負を挑みます。

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする (20)

Anúncio

Mais de 文樹 高橋 (20)

Mais recentes (20)

Anúncio

テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする

  1. 1. テーマに機能を含めちゃダメなんて誰が決めた! テーマをモリモリにカスタマイズする WordBench東京2016/02 (C)2016 高橋文樹
  2. 2. おまえ誰? • 高橋文樹といいます。小説家で す。 • WordCamp Tokyo 2016の副実 行委員長です。 • 公式プラグインを6個ぐらい公開 しています。 • 僕のプラグインを3回以上インス トールした人は僕のKindle本を 全部買ってください。子供が飢 えています。
  3. 3. 免責事項 この発表はWordPressを使ってサイトを作るにあたり、 どれだけやれるのかということを主題にしています。 もしあなたがWordPressによる受託開発を行っており、 コーポレートサイトやらなんやらをたくさん作ることで 生計を立てているのであれば、 全然役に立たない発表になってしまいますので、 その点ご了承ください。
  4. 4. よくある誤解 • 「テーマは見栄えでプラグインは機能」なの? • コード的にはどっちも大して変わらない。違うのは エントリーポイント(WordPressのどこで一番最初 に実行されるか)ぐらい。 • 実現可能かどうかと、特定の誰か(WordPress.org) がそうしてほしいかどうかは別問題。
  5. 5. 公式リポジトリの規約 • Use WordPress functionality and features first, if available. • Don t include admin/feature pointers. • No pay wall restricting any WordPress feature. • No disabling of the admin tool bar. • Use get_template_directory() rather than TEMPLATEPATH to return the template path. • Use get_stylesheet_directory() rather than STYLESHEETPATH to return the stylesheet path. • Avoid hard coding to modify content. Instead, use function parameters, filters and action hooks where appropriate. For example wp_title should be modified using a filter. • Able to have child themes made from them. (Child theme ready) • Include comments_template(). • The theme tags and description must match the what the theme actually does in respect to functionality and design. • Use template tags and action/filter hooks properly. https://make.wordpress.org/themes/handbook/review/ required/#core-functionality-and-features
  6. 6. そうなんだ! でも公式テーマじゃないから!
  7. 7. 解決
  8. 8. プラグインとテーマの 違わなさ wp-settings.phpの 251行目か364行目か
  9. 9. 唯一の違い • テーマはプラグインより後に読み込まれるので、プラグイン がテーマを変更することはできるが、テーマがプラグインを 変えることはできない。 • テーマは定数で読み込まれるので、UserAgentでテーマを切 り替えるようなことをテーマ自身は基本的にできない(テー マスイッチ系プラグイン) • initやadmin_menuなどのクリティカルなフックは全部 after_setup_themeフック以降なので、違いは大してない。 管理画面を追加したりすることはテーマにもできる。
  10. 10. ところで
  11. 11. Terminology 【プラグイン】 語義: コンセントのように差したり抜いたりできる もの 【テーマ】 語義:主題
  12. 12. デモ
  13. 13. WordPressは プラグインがなくても動くが、 テーマがないと動かない!
  14. 14. 人生で重要なのは……  主題 > コンセント テーマ > プラグイン
  15. 15. 破滅派のテーマ • 後ろ向きのまま前へ進め! • パブリッシング・プラットフォーム • DIY(Do It Yourself)
  16. 16. やってみよう! テーマから色々やるよ
  17. 17. composer まず、テーマにcomposerを含め ます。
  18. 18. 読み込みます vendor/autoload.phpを読みこめば、require地獄から解放!
  19. 19. WPametuとは?
  20. 20. WPametuのここがすごい! • 設定ファイルを置いておくとデータベースを勝手に作ってくれる • なんちゃってORマッパーがある! • HTMLメルマガに欠かせない外部CSSをインラインCSSに展開す る機能がある! • コントローラーがある! クラスを置くだけでリライトルール追 加 • if( $_POST[ hoge ] ){}とか書かない! if($this->input- >post( hoge ){}でno warning!
  21. 21. 昨今のPHPフレームワークは • CakePHPとかは特定のフォルダに特定のクラスを継承し たクラスを置いておくだけで、RESTfullな作りになる。 • たとえば、http://exaple.jp/post/create/ にアクセスす ると投稿が作れるとか、そういうの。これを理解してい なくて、ルートにわけわかんないフォルダいっぱい作っ てるヤツを死ぬほど見てきた。 • WordPressのリライトルールは少し複雑なので、ここで 苦労しているプログラマも多い。
  22. 22. WPametuなら……
  23. 23. というわけで テーマで色々できる
  24. 24. アンチパターン • 神(ゴッド)オブジェクトを作らない。
 $myapp->post->custom->event_limit とかダメ! • シンタックスシュガーを多用しない
 $this->i18n->_( hogehoge ) = __( hogehoge , hametuha ) • Well Documentedは正義! コメント最高!
  25. 25. とはいえ…… • プラグインで機能を細かくわけた方が効率がいいの では? という疑問が必ず来る。
  26. 26. 汎用性と開発効率は トレードオフ
  27. 27. たとえば、匿名掲示板
  28. 28. 破滅派の場合
  29. 29. プラグインにした場合
  30. 30. 13kb < 177kb 13,312文字 < 181,248文字 桁が違う!
  31. 31. あと、こうなる
  32. 32. プラグインにする条件は? • その機能が汎用的であること • みんなが使うであろうユース ケースをきちんとカバーして おり、それに意味があること • 管理画面以外にUIを伴わない こと • お金儲けしたい タイトル ブラックジャックによろしく
 著作者名 佐藤秀峰
 サイト名 漫画 on web
  33. 33. プラグインのつらみ • WordPressはテーマに異常な裁量を置いており、テー マ作者は好きなUIを作ることができる。 • となると、プラグイン側で困るのはUIを作ること。た とえば、Twitter BootstrapでUIを作ることが決まって いれば、プラグインから好きなようにUIを作れる。 • 結果、プラグインからクソのようなCSSが大量に読み 込まれ、どうしようもない結果になる。
  34. 34. デモ
  35. 35. 今日の学び • テーマの方がプラグインよりずっと大事! 人生の テーマはあるけど、人生のプラグインはない! • なんだってやろうと思えばできる! • WordPressのTheme RequirementsにCSSフレームワー クを含めろ! BootstrapでもBourbonでも Foundationでもなんでもいいよ、ないよりマシだ よ!
  36. 36. ‒マルクス・アウレリス・アントニヌス “なにもしなかったということは、 悪いことをしなかったということではない”
  37. 37. ご静聴 ありがとうございました

×