Learning from theme review requirements

Shinichi Nishikawa
Shinichi NishikawaDirector of Client Services at Human Made
テーマレビューチームに学ぶ
テーマ制作の
ベストプラクティス
Shinichi Nishikawa
WordCamp Kansai 2015
2008
Learning from theme review requirements
ブログ
http://nskw-style.com
英語版
http://th-daily.shinichi.me
移住ブログ & Podcast
http://thai.osampo-radio.com
http://journey.osampo-radio.com
WordPress との関係
初めての WordBench
2013年。WPのバージョンは3.0
Photo: CC by Odyssey
WordCamp Tokyo 2012
実行委員長
Bangkok WordPress Meetup
立ち上げ。英語/タイ語グループ、日本語グループ
WC Sanfrancisco 2014
WordPressでいろいろしてる
.org のプロフィール
さて、本題の前に少しだけ
テーマ制作について
• テーマ作ったことある人
• 仕事で作ってる人
• 自社のサイトを作ってる
• クライアントのウェブサイト作ってる
• 公式テーマレポジトリにテーマを置いている
仕事の仕方、お金のもらい方
• 1度作って納品したら終わりという方
• アップデート、メンテナンスなども含めて、
継続的に仕事が続くという方
同時進行している案件の数
• 1
• ~5
• ~10
• 10~
• 一番多い人を探そう
仕事の仕方、チーム
• 一人で仕事をしている方
• チームで仕事をしている方
仕事の内容
• ドイツにあるホテルのウェブサイト
• 住宅販売、不動産販売、リフォーム事業、ショッピング
モールを開発する企業のサービスサイト
• 旅行代理店のウェブサイト
• ハイトラフィックなメディアサイト
• コワーキングスペースのサイト、NGOのウェブサイ
ト、バンコクの工場のサイトなど
本日のゴール
再利用可能性とメンテナンス性が高い
WordPressサイトを、安全に、短時間で、
チームで作るためのベスト・プラクティスを学
び、日々のテーマ制作の方法を改善すること。
WordPress.org
テーマレポジトリの
掲載要件から
学ぶことができる
WordPress.org
公式テーマレポジトリ?
http://ja.wordpress.org/themes
Learning from theme review requirements
テーマレビューとは?
Theme Review
Requirements
必須項目
公式テーマレポジトリ掲載要件
https://make.wordpress.org/themes/handbook/review/required/
Theme Review
Requirements
1. 基本 (まずは抑える)
2. 応用 (ここにベスト・プラクティスのヒン
トが!)
基本
基本 - コード
• php, Javascript のエラーなし
• グローバル変数、関数名、定数の名前、オプ
ション値のキーには、すべて接頭辞を付ける
基本 - ライセンス
• 100% GPL か 100% GPL 互換
• php は自動的に GPL となる
• css, js, img, font などのすべてのものを GPL に
することを 100% GPL と WordPress のコミュ
ニティは呼んでいます
基本 - 国際化 - i18n
• internationalization
• サイト閲覧者に表示されるすべてのテキスト
を翻訳可能にすること
• オリジナルのテキストは何語でもOK。ただ
し、1つの言語で書かれていること
基本 - セキュリティ
• 出力は全部エスケープ / esc_html, esc_attr,
esc_js, esc_textarea, esc_url
• 入力は全部バリデート
• 勝手にデータをユーザーのDBに保存したり、
何かをよそのサーバに送らない。
応用
応用 - プラグイン・テリトリ
• プラグインを含めない
• プラグインの領域と考えられることをしない
応用 - コア関連
• WordPress の既存の機能を再開発しない
• コアの機能を停止しない
• ツールバーを消さない
応用 - コンテンツ関係
• ユーザーのコンテンツを生成しない
• デフォルトの値をDBに保存しない
• 機能を設定させない。
• ショートコード を定義しない
• カスタム投稿タイプ、カスタムタクソノミを定義し
ない
応用 - スタイルとスクリプト
• CSSとJSのハードコーディング無し。全部
enqueue する。
応用 - テンプレート
• テンプレートヒエラルキーをきちんと使う
• テンプレートファイルの呼び出し用の関数をきちんと使
う
• TEMPLATEPATH ではなくget_template_directory()
• STYLESHEETPATH じゃなくて
get_stylesheet_directory()
• 子テーマが作れるように作る
読み取りたい
ベスト・プラクティス
ベスト・プラクティス1
“見た目に徹する”
presentation
vs
functionality
見た目はテーマに、機能はプラグインに
関連する項目例
• プラグインを含めない/プラグインの領域と考えられるもの
を入れない
• シェアボタン、OGP
• コンタクトフォーム
• ショートコードの定義をしない
• カスタム投稿タイプ、カスタム分類の定義をしない
• サイトの機能を設定させない。
ベスト・プラクティス2
“どんなプラグインとも機能する
ための作法を知る”
関連する項目例
• CSS/JSのハードコーディング無し。

enqueue する。
• グローバルっぽいものは全部プレフィックス
• TEMPLATEPATH ではなくget_template_directory()
• STYLESHEETPATH じゃなくて get_stylesheet_directory()
• bloginfo( ‘url’ ) じゃなくて、 home_url();
• WordPress の機能を停止させない
ベスト・プラクティス3
“WordPress の機能をフル活用”
例
• メニューがうまく使えないか考える
• ウィジェットがうまく使えないか考える
• テンプレート階層をちゃんと使う
ベスト・プラクティス4
“コンテンツに触らない”
presentation
vs
contents
データは誰のもの?
関連する項目例
• コンテンツを生成するための機能を提供しな
い
• ショートコードの定義をしない
• カスタム投稿タイプ、カスタム分類の定義を
しない
• デフォルト値をデータベースに保存しない
仕事への活かし方
今日のゴール
再利用可能性とメンテナンス性が高い
WordPressサイトを、安全に、短時間で、
チームで作るためのベスト・プラクティスを学
び、日々のテーマ制作の方法を改善すること。
4つのベスト・プラクティス
1. 見た目に徹する
2. どんなプラグインとも機能するための作法を知る
3. WordPress の機能をフル活用
4. コンテンツに触らない
まずは、読んでみよう!
実践してみよう!
隠しベスト・プラクティス
隠しベスト・プラクティス
“とはいえ、というのはある”
いつ、分離するのか
• 再利用するのかどうか
• そのサイトで再利用する
• ほかのサイトで再利用する
• 他の人が再利用する
• 機能が大きい
• テーマの再利用性が下がるのを許容できる
公式レポジトリの掲載要件を
守ることが
なぜ
効率化に繋がるのか
パブリッシングの民主化
リソース
• theme review requirements
• developer.wordpress.org
• コデックス と codex
質問タイム
• 見た目に徹する
• どんなプラグインとも機能するための作法を知る
• WordPress の機能をフル活用
• コンテンツに触らない
• とはいえ、、
1 of 62

More Related Content

What's hot(20)

WP REST API の活用事例と今後WP REST API の活用事例と今後
WP REST API の活用事例と今後
Yuusuke Yoshida6.6K views
WordCamp Kansai 2015 CI ハンズオンWordCamp Kansai 2015 CI ハンズオン
WordCamp Kansai 2015 CI ハンズオン
タカシ キタジマ16K views
airyのご紹介airyのご紹介
airyのご紹介
Teruaki Murakami5.4K views
YARAIYA!  Opendata with WordPressYARAIYA!  Opendata with WordPress
YARAIYA! Opendata with WordPress
Hidetaka Okamoto6K views

Similar to Learning from theme review requirements(20)

WordCamp Tokyo2012 handson PortfolioWordCamp Tokyo2012 handson Portfolio
WordCamp Tokyo2012 handson Portfolio
regret raym1.4K views
WordBench京都版 _sハンズオンWordBench京都版 _sハンズオン
WordBench京都版 _sハンズオン
Hidetaka Okamoto2.3K views
WordPressって何WordPressって何
WordPressって何
Kazue Igarashi1.8K views
Wb tokyo 2013Wb tokyo 2013
Wb tokyo 2013
Hidekazu Ishikawa2.5K views
Dockerとdev opsDockerとdev ops
Dockerとdev ops
Hiroshi Maekawa596 views
2014 01-11-tdc-6th-anniversary2014 01-11-tdc-6th-anniversary
2014 01-11-tdc-6th-anniversary
Chieko Aihara1.7K views
WordPress 運用前の初期設定WordPress 運用前の初期設定
WordPress 運用前の初期設定
Shigeki Takai1.4K views
20160430co-edo20160430co-edo
20160430co-edo
Chieko Aihara1K views
WordPressプラグインの作り方WordPressプラグインの作り方
WordPressプラグインの作り方
Takami Kazuya1.1K views

More from Shinichi Nishikawa(19)

WordPress Community in JapanWordPress Community in Japan
WordPress Community in Japan
Shinichi Nishikawa612 views
Child ThemeChild Theme
Child Theme
Shinichi Nishikawa56.9K views
An easy guide to Plugin DevelopmentAn easy guide to Plugin Development
An easy guide to Plugin Development
Shinichi Nishikawa50.5K views
2013年3月16日のWordBench大阪2013年3月16日のWordBench大阪
2013年3月16日のWordBench大阪
Shinichi Nishikawa876 views
WordCamp Tokyo 2012 ConceptWordCamp Tokyo 2012 Concept
WordCamp Tokyo 2012 Concept
Shinichi Nishikawa3.7K views

Learning from theme review requirements