learning from theme review requirements
TRANSCRIPT
テーマレビューチームに学ぶテーマ制作の
ベストプラクティスShinichi Nishikawa
WordCamp Kansai 2015
2008
ブログhttp://nskw-style.com
英語版http://th-daily.shinichi.me
移住ブログ & Podcasthttp://thai.osampo-radio.com
http://journey.osampo-radio.com
WordPress との関係
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
テーマレビューとは?
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 の機能をフル活用
• コンテンツに触らない
• とはいえ、、