• Save
Theme review-guidelines wckobe2013
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,395
On Slideshare
2,646
From Embeds
1,749
Number of Embeds
12

Actions

Shares
Downloads
0
Comments
0
Likes
6

Embeds 1,749

http://wp-d.org 1,488
http://junonet.biz 146
https://twitter.com 43
http://cloud.feedly.com 26
http://www.feedspot.com 13
http://www.newsblur.com 11
http://www.feedly.com 9
http://feedspot.com 4
http://rss.ameba.jp 3
http://newsblur.com 3
http://feedly.com 2
https://www.google.co.jp 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. テーマレビューガイドラインWordCamp Kobe 20132013.06.15ヒラタ/@01v0101
  • 2. 自己紹介ヒラタ/@01v0101とある組織のウェブ担当者※別に隠し立て必要のある仕事という事ではありません。。
  • 3. 【公式テーマ】とはダッシュボードからインストールできるテーマ/wp-admin/theme-install.php=公式テーマディレクトリに登録されているテーマhttp://wordpress.org/themes/
  • 4. 【公式テーマ】とは何をもって「公式」?→審査で承認されたテーマhttp://themes.trac.wordpress.org/審査基準→テーマレビューガイドラインhttp://codex.wordpress.org/Theme_Review
  • 5. 【テーマレビューガイドライン】とは•  公式テーマディレクトリへ登録されるための審査基準•  様々な技術を WordPress に実装するための設計指標
  • 6. 本題の前に•  本スライドは以下 URL にて公開しております。<http://www.slideshare.net/hiratatsuya/theme-reviewguidelines-wckobe2013>•  スライドの内容は基本的にテーマレビューガイドライン<http://codex.wordpress.org/Theme_Review> の翻訳です。※文章量多いです。。
  • 7. テーマレビューガイドライン(2013-6-12)1.  コード品質2.  視認性と機能性3.  テーマ機能4.  テンプレートタグおよびフック5.  WP 定義 CSS クラス6.  テンプレートファイル7.  セキュリティとプライバシー8.  ライセンス(使用許諾)9.  テーマ名10. クレジットリンク11. テーマ説明書12. テーマユニットテスト13. テーマの旧式化14. アクセシビリティ15. 正しく綴る WordPress
  • 8. 1. コード品質テーマは、WordPress 非推奨(廃止予定の)関数が使われていない事、PHP エラー・警告または通知がでない事、HTML / CSS の検証エラー、JavaScript エラーがない事が必須です。1. WordPress2. PHP, JS, CSS, HTML3. Doctype 宣言4. テーマの名前空間
  • 9. 1.1. WordPressコード旧式化テーマは非推奨(廃止予定の)関数を使用したり_doing_it_wrong() 通知を出力してはいけません。
  • 10. 1.1. WordPress下位互換性テーマは、function_exists 関数を使用して現行の WordPress関数に対応する事を含め、過去バージョンの WordPresへの下位互換性を提供してはいけません。•  テーマは、2バージョンより前のメジャーバージョン(現在はWordPress 3.2を意味する)のための下位互換性をサポートしてはいけません。•  テーマは、1バージョンより前のメジャーバージョン(現在はWordPress 3.3を意味する)のための下位互換性をサポートするべきではありません。
  • 11. 1.2. PHP, JS, CSS, HTML•  テーマは、通知・警告・エラーが発生しない事が必須です。以下の方法を使用してテストします。–  デバッグモードへ移行wp-config.php: define(WP_DEBUG, true);–  プラグインを使用•  Log Deprecated Notices(非推奨タグチェック)•  Debogger(デバッグ情報表示)
  • 12. 1.2. PHP, JS, CSS, HTML•  テーマは、あらゆる JavaScript エラーを生成してはいけません。•  テーマは現行バージョンの(X)HTMLとCSSを使用し、次のいずれかの方法を使用してテストすることを推奨します。–  W3C XHTML Validator + W3C CSS Validator–  W3C XHTML+CSS Validator (Unicorn)
  • 13. 1.3. Doctype 宣言•  テーマは、有効な HTML ドキュメント HEAD 定義が必須です。–  有効な DOCTYPE 宣言である事。–  <html>タグに language_attributes() 関数が含まれてる事。–  <head> 内に正しいXFNプロファイルリンク:<headprofile= http://gmpg.org/xfn/11 > が設定されている事。例外:として、HTML5はサポート外なので、プロファイルがあってはいけません。
  • 14. 1.3. Doctype 宣言–  正しい content-type meta が宣言されている事。<meta http-equiv= Content-Type content= <?php bloginfo( html_type ); ?>; charset=<?phpbloginfo( charset ); ?> /> あるいは <title> タグ前で <meta charset= <?php bloginfo( charset ); ?> />–  <title>内に、タイトルと概要を明示するためにbloginfo() 関数を設定している事。
  • 15. 1.4. テーマの名前空間•  テーマは、翻訳用にテキストドメインとしてテーマスラッグ(or a reasonable facsimile)を使用する事が必須です。•  テーマは、すべてのカスタム関数、クラス、フック、グローバル/パブリック変数、データベースエントリ(テーマオプション、ポストカスタムメタデータなど)など、全ての名称の接頭辞として、ユニークなスラッグを使用する事が必須です。–  テーマは、テーマ固有のユニークなスラッグを使用する事が推奨されています。c.f. Twenty Twelve…functions.php:load_theme_textdomain( twentytwelve, get_template_directory() . /languages );
  • 16. 1.4. テーマの名前空間•  注:翻訳のためにテーマスラッグを使用する場合、スラッグは文字列でなければならず、変数や定数であってなりません。 変数や定数を使用すると、テキスト自動翻訳ツールの問題を引き起こします。 詳細については、Mark Jaquithの投稿を参照してください。このガイドラインは、すべてのi18n変換メカニズムを使用するために対応する事が必須です。
  • 17. 2. 視認性と機能性本来、テーマの目的はユーザコンテンツを表示する事であり、テーマがユーザコンテンツの生成を定義したり、あるいはテーマ固有のサイトオプションや機能性を定義するために、テーマを使用してはいけません。
  • 18. 2. 視認性と機能性言語•  テーマは、公開される全ての場面において英語表記を持っている事が必須です。•  テーマは、 必要に応じて 翻訳・国際化機能を組み込む事ができますが、組み込まれている場合、 翻訳・国際化機能は、WordPress のコア機能をサポートしている必要があります。–  テーマは、翻訳機能を持たせるため、変数ではなく定数ではなく連結子でもなく、文字列である構成される事が必須です。
  • 19. 2. 視認性と機能性ファビコン•  テーマは、ファビコン機能を実装しない事を推奨しています。–  実装した場合、ファビコン機能は選択式であり、デフォルトでは無効になっている事が必須です。–  実装されている場合、ファビコン機能はユーザ定義のファビコン画像をサポートする事が必須です。
  • 20. 3. テーマ機能必須、推奨、任意のいずれにせよ、テーマは WordPressのコアに実装されている全ての機能を適切にサポートする事が必須です。
  • 21. 3. テーマ機能(必須)テーマは以下のコア機能を実装する事が必須です。•  自動フィードリンク:add_theme_support( automatic-feed-links )•  ウィジェット:register_sidebar(), dynamic_sidebar(),add_action(widgets_init), register_widget()•  コメント:comments_template(), wp_list_comments(),comment_class(), comment_form(),wp_enqueue_script( comment-reply )
  • 22. 3. テーマ機能(推奨)テーマは以下の WordPress コア機能を組み込む事を推奨していますが、必須ではありません。しかし組み込んでいる場合、 WordPress コアの機能での実装をサポートしている必要があります。
  • 23. 3. テーマ機能(推奨)カスタムメニュー:•  wp_nav_menu()•  functions.php 内にregister_nav_menu() または register_nav_menus()•  以下の機能は、単にナビゲーションメニューのためにwp_nav_menu() のコールバックとして使用しても、has_nav_menu() の一部条件として使用しても良いです。あるいは wp_list_pages wp_list_categorieswp_page_menu などの類似機能もあります。
  • 24. 3. テーマ機能(推奨)投稿サムネイル•  the_post_thumbnail()•  add_theme_support( post-thumbnails )カスタムヘッダ•  add_theme_support( custom-header )カスタム背景•  add_theme_support( custom-background )ビジュアルエディタ CSS•  add_editor_style()•  editor-style.css ファイル
  • 25. 3. 機能(不可)テーマは以下の WordPress コア機能を組み込んではいけません。•  機能通知ポインター
  • 26. 4. テンプレートタグおよびフックテーマで使用されるすべてのテンプレートタグやフックは適切に実装される事が必須です。1.  必須フックとナビゲーション2.  ファイルの読み込み3.  子テーマのサポート4.  スタイルシートとスクリプトの読み込み5.  関数パラメータ、フィルタ、およびアクションフック6.  サイト情報
  • 27. 4.1. 必須フックとナビゲーション•  wp_title()•  wp_head() ‒ (</head> の直前)•  body_class() ‒ (<body> の中)•  $content_width•  post_class()•  wp_link_pages()•  paginate_comments_links(), またはprevious_comments_link()/next_comments_link()•  posts_nav_link(), またはprevious_posts_link()/next_posts_link(),または paginate_links()•  wp_footer() ‒ (</body> の直前)
  • 28. 4.2. ファイルの読み込み以下のファイルテーマに組み込む場合、標準テンプレートファイルを正しいテンプレートタグを用いて呼び出すことが必須です。•  comments.php (comments_template()経由)•  header.php (get_header()経由)•  footer.php (get_footer()経由)•  sidebar.php (get_sidebar()経由)•  searchform.php(get_search_form()経由)
  • 29. 4.2. ファイルの読み込みカスタムテンプレートファイルがテーマに組み込まれている場合、 get_template_part() または locate_template()を使用して呼び出される事が必須です。•  詳細については「ワードプレスのテーマ内のファイルをロードする方法」を参照してください。•  include(get_template_directory(). / file.php )は、テーマテンプレートパーツファイルとして呼び出してはいけません。
  • 30. 4.2. ファイルの読み込みテーマは、テーマの中に含まれる全てのテンプレートファイルを読み込む事が必須です。 テーマは、以下の機能のいずれかを使用する場合には、適切なテンプレートファイルを含む事が必須です。get_footer(): footer.phpget_header(): header.phpget_sidebar(): sidebar.phpcomments_template(): comments.php
  • 31. 4.3. 子テーマのサポート•  テーマは、子テーマの利用を促進する事が必須です。 基本的な 子テーマ(すなわち、 style.css 内のテンプレートヘッダー内に記述され、参照される style.css ) から有効化された時に、テーマ自体が関数として正確に機能する事が必須です。
  • 32. 4.3. 子テーマのサポート•  テーマは子テーマで使用するのに容易な方法で、機能とリソースファイルを読み込み事が必須です。–  get_template_directory_url() は親テーマファイル、またはリソースを読み込むために使用します。そしてそれは子テーマに上書きされる事はありません。–  get_stylesheet_directory_url () は、子テーマでのリソースを読み込むために使用します。これは子テーマに依存します。
  • 33. 4.4. スタイルシートとスクリプトの読込み•  テーマがスタイルシートとスクリプトの読み込む時は、常にwp_enqueue_style()またはwp_enqueue_script() を使用し、かつハードコーディングしたスタイルシート/スクリプトをテンプレートタグに書き込むのではなく、適切なフックからコールバックされる事が必須です。•  テーマはadmin-enqueued scripts/stylesheetsには、Theme-specific フックを使う事が必須です。•  テーマは、スタイルシートとスクリプトを wp_enqueue_scripts でフックする事を推奨します。•  テーマは、任意に文書の冒頭で直接、あるいは wp_enqueue_style()を介してデフォルトのスタイルシート(style.css ) をリンクする可能性があります。 どちらの方法が使用されても、デフォルトスタイルシートが get_stylesheet_url() を介して参照される事に違いはありません。
  • 34. 4.4. スタイルシートとスクリプトの読込み•  テーマは以下のようなスクリプトではなく、コアに実装されているスクリプトを使用する事が必須です。–  テーマは TimThumb ライブラリを使用してはいけません。
  • 35. 4.5. 関数パラメータ、フィルタ、およびアクションフックテーマは、内容を変更したりハードコーディングするよりも、適切な関数のパラメータ、フィルタ、フックを使用する事が必須です。•  wp_title()wp_title()フィルタを介して出力する事が必須です。c.f. Twenty Twelve…add_filter( wp_title, twentytwelve_wp_title, 10, 2 );•  body_class()/post_class()body_class()とpost_class()はフィルタを介して出力する事が推奨されています。c.f. Twenty Twelve…add_filter( body_class, twentytwelve_body_class )•  テーマは、必要に応じて関数パラメータを介して出力を変更することができます。
  • 36. 4.6. サイト情報サイト情報をテーマに組み込む場合、正しいテンプレートタグを用いて呼び出す事が必須です。•  テンプレート/スタイルシートのパス:–  テーマがテンプレートのパスを返す必要のある時、定数 TEMPLATEPATH ではなく、get_template_directory()を使用する事が必須です。–  テーマがスタイルシートのパスを返す必要のある時、定数 STYLESHEETPATH ではなく、get_stylesheet_directory()を使用する事が必須です。
  • 37. 4.6. サイト情報テーマは、bloginfo() よりも、それに相当する *_url() テンプレートタグを使用する事が必須です。get_option()タグに相当する内容に関してはtrac#9008のチケットを参照ください。
  • 38. 4.6. サイト情報(使用例)•  文字コード: bloginfo( charset )•  ホーム URL: echo home_url()•  HTML タイプ: bloginfo( html_type )•  フィードリンク: get_feed_link( feed )(where feed is rss, rss2, atom)•  サイト言語: bloginfo( language )•  地域情報: get_locale()•  親テーマディレクトリURL:get_template_directory_uri()•  親テーマディレクトリパス:get_template_directory()•  親テーマ名: get_template()•  サイト概要: bloginfo( description )•  サイトタイトル: bloginfo( name )•  スタイルシートディレクトリURL:get_stylesheet_directory_uri()•  スタイルシートリURL:get_stylesheet_uri()•  スタイルシートディレクトリパス:get_stylesheet_directory()•  文字方向: bloginfo( text_direction )–  is_rtl() でステータス取得する事が推奨されています。•  WordPress URL:echo site_url()•  WordPress バージョン情報:bloginfo( version )
  • 39. 5. WordPress 定義 CSS クラステーマは、 WordPress で定義されるCSSクラスをサポートする事が必須です。スタイルシートに記述されている事が必須である一方、必要に応じて .stickyと .bypostauthorはスタイルなし、空のままにする事ができます。この意図は、テーマ開発者がWordPress定義CSS クラスを検討した事を確認するためです。・整列要素:  .aligncenter  .alignleft  .alignright・キャプション要素:  .wp-caption  .wp-caption-text  .gallery-caption・投稿要素:  .sticky・コメント要素:  .bypostauthor
  • 40. 6. テーマテンプレートファイル(必須)テーマは、テーマテンプレートファイルを適切に使用する事が必須です。注:子テーマのファイル数は親テーマに依存するため、必ずしもこの限りではありません。
  • 41. 6. テーマテンプレートファイル(必須)テーマは最低でも以下ファイルを含める事が必須です。•  index.php•  comments.php (comments_template()経由)•  screenshot.png–  推奨…アスペクト比4:3、600x450px(※Retinaディスプレイ対応のため、以前の300x225pxの2倍)–  最大サイズ:600x450px–  初めてテーマが適用された時に表示されるであろうスクリーンショットである必要があります。•  style.css
  • 42. 6. テーマテンプレートファイル(推奨)テーマは以下ファイルを含む事を推奨します。注:header.php やfooter.php や sidebar.php には、sidebar-left.php や sidebar-right.php や sidebar-footer.php などの変形も含みます。•  404.php•  archive.php•  page.php•  search.php•  single.php•  header.php (get_header()経由)•  footer.php (get_footer()経由)•  sidebar.php (get_sidebar()経由)
  • 43. 6. テーマテンプレートファイル(任意)テーマが以下のファイルを含める事は任意です。•  attachment.php•  author.php•  category.php•  date.php•  editor-style.css•  image.php•  tag.php
  • 44. 6. テーマテンプレートファイル(機能実装)テーマは、次のようなテンプレートタグやコアのマークアップを使用し、各種フォームを実装する事を推奨します。•  ログイン:wp_login_form()を使用する事が必須です。•  検索:get_search_form()を使用する事が必須です。テーマは、任意の searchform.php を使用する事で、検索フォームをカスタマイズすることができます。
  • 45. 6. テーマテンプレートファイル(名前)テーマは、次のような名前のファイルを含めない事が推奨されています。このようなファイルが使用されている場合は、テーマは、それらを使用する方法を説明するドキュメントをエンドユーザーに提供する事が必須です。•  page-foobar.php•  category-foobar.php•  tag-foobar.php•  taxonomy-foobar.php
  • 46. 6. テーマテンプレートファイル(名前)注: 一般公開するテーマでこれら命名法を避ける理由は、利用者が「foobar」というスラッグのページやカテゴリーを作成すると、デフォルトテンプレートではなく、予期せずこのテンプレートが適用されてしまうためです。テンプレート階層 - ページ表示を参照してください。
  • 47. 7. セキュリティとプライバシーテーマは、データのセキュリティとエンドユーザーのプライバシーを確保するために、適切にテーマ設定を実装する事が必須です。1.  テーマ設定とデータセキュリティ1.  参考記事2.  プライバシー
  • 48. 7.1. テーマ設定とデータセキュリティ•  テーマは、すべてのオプション、カスタム関数、カスタム変数、およびカスタム定数の接頭辞に、テーマスラッグ(または適切な変数)を付ける事が必須です。•  テーマは、テーマオプションとテーマ設定を、インターネット上に公開されているスクリプトをコピー&ペーストで拾ってくるのではなく、慎重に実装する事が必須です。
  • 49. 7.1. テーマ設定とデータセキュリティ•  テーマは、テーマ設定ページ追加するために、トップレベルメニューに追加するための add_menu_page() を使用するのではなく、外観メニューに追加するためのadd_theme_page() 関数を使用する事が必須です。
  • 50. 7.1. テーマ設定とデータセキュリティ•  テーマは、テーマ設定を行うため、ユーザー種別(例えば管理者)、あるいは設定ページを追加する機能ごとに異なる権限(例えば edit_themes , manage_options )に依存するのではなく、 add_theme_page() にedit_theme_options 権限を使う事が必須です。
  • 51. 7.1. テーマ設定とデータセキュリティ•  テーマは、単一の配列にオプションを保存するのではなく、その設定のページに対する複数のオプションを作成する事が必須です。 Settings API を使用するのと同じように、テーマ固有のプロパティ値を扱うset_theme_mod()とget_theme_mod() はこれを実現します。
  • 52. 7.1. テーマ設定とデータセキュリティ•  チェックボックスやセレクトオプションの実装においては、それぞれが 選択されている という事を明示するため、checked()タグと selected() タグを使用する事が必須です。•  テーマは、データをデータベースへ入力する前に、信用できないデータすべてをクリーンかつ有効にし、そして全ての信用できないデータを設定画面あるいはテーマテンプレートファイルに表示させない事が必須です。•  テーマは、テキスト入力に際して esc_attr() や esc_html()あるいはesc_textarea() を使用する事が必須です。
  • 53. 7.1. テーマ設定とデータセキュリティ•  テーマは、設定ページに明示的なワンタイムトークンを供給する事が必須です。でないならばSettings-APIを使用する事が必須です (参照:WordPress Nonces)•  テーマは、フォームに入力したデータを $_POSTや$_REQUESTを用いて直接取り扱うのではなく、Settings API 使用する事を推奨しています。•  テーマは、設定を出力するのにハードコーディングを行うよりも do_settings_sections() を使用する事を推奨しています。
  • 54. 7.1.1 参考記事•  Incorporating the Settings API in WordPressThemes by Chip Bennett•  WordPress Settings API Tutorial by Otto•  A Sample WordPress Theme Options Page by IanStewart
  • 55. 7.2. プライバシーテーマは、ユーザの同意なしに情報収集の通信を行なってはいけません。•  テーマがユーザーデータを収集する時は、例えばユーザの設定可能なテーマオプションなどを通じて、常にそれが明示される事が必須です。•  テーマは、テーマ内のすべての画像、スクリプト、およびその他のバンドルリソースを含める必要があります。 これらリソースは、サードパーティのサイトから ホットリンク してはいけません。 注:API呼び出し、例えばGoogleのライブラリは許容されます。
  • 56. 8. ライセンス(使用許諾)テーマは、完全に GPL 互換の下でライセンスされる事が必須です。1.  有償テーマ2.  同梱リソース1.  GPL 互換フォントライセンス2.  GPL 互換アイコンセット
  • 57. 8. ライセンス(使用許諾)ライセンス•  テーマは100% GPL ライセンスまたはGPL 互換ライセンスであることが必須です。これにはすべての PHP、HTML、CSS、画像、フォント、アイコン、その他が含まれます。テーマのすべての部品が GPL 互換ライセンスでなければなりません。•  テーマは、 ライセンス全文を記した、あるいは参照したlicense.txt をテーマファイルに同梱するか、あるいはライセンス全文を記した有効なURLへのリンクを記述する事が選択できます。
  • 58. 8. ライセンス(使用許諾)ライセンス•  テーマにはこれらのライセンスを明示的に記載することが必須です。以下のいずれかの方法を使ってください。•  License または License URI ヘッダースラッグをstyle.css に追加します。c.f. Twenty Twelve…style.css:License: GNU General Public License v2.0License URI: http://www.gnu.org/licenses/gpl-2.0.html
  • 59. 8. ライセンス(使用許諾)著作権•  テーマは、該当する著作権とライセンス情報を宣言する事が必須です。 (例:Twenty Eleven WordPressTheme, Copyright 2011 WordPress.org TwentyEleven is distributed under the terms of the GNUGPL)•  派生テーマは、元のテーマの著作権情報を保持/宣言する事が必須です。
  • 60. 8. ライセンス(使用許諾)商標•  テーマは、過去または現在どこかしらのウェブサイトのデザインを複製し作成してはいけません。複製以外のデザインは随時検討されます
  • 61. 8.1. 有償テーマ•  無料テーマ(すなわち freemium やup-sell テーマ)の有償バージョンはGPL互換ライセンスの下でリリースする事が必須です。•  無料テーマの有償バージョンは、有償を理由にWordPress コアの機能をロックしてはいけません。•  有償テーマは、テーマレビューチームの裁量で、より厳格なテーマレビューガイドラインに諮られる事があります。
  • 62. 8.2. 同梱リソース•  テーマは、テーマのライセンス文によってカバーされていない任意の同梱リソースの著作権とライセンス情報を明示する事が必須です。この情報はREADMEドキュメントに記載する事が推奨されます。
  • 63. 8.2.1. GPL 互換フォントライセンス•  GNU ファウンデーションおよび Fedora プロジェクトは GPL ソフトウェアでして使えるフォント一覧を管理しています。•  WordPress テーマディレクトリに申請するテーマに同梱するフォントは、以下のいずれかのライセンスであることが必須です。Arphic Public License (Arphic), Baekmuk License (Baekmuk),Bitstream Vera License (Bitstream Vera), GNU GPL (with fontexception) (GPL), GUST e-Foundry Font License/LaTeX ProjectPublic License (LPPL), IPA Font License (IPA), Liberation FontLicense (Liberation), LaTeX Project Public License (LPPL), mplusFont License (mplus), ParaType Font License (PTFL), SIL Open FontLicense (OFL), STIX Fonts User License (STIX), Wadalab FontsLicense (Wadalab), XANO Mincho Font License (XANO),
  • 64. 8.2.2. GPL 互換アイコンセット以下は互換アイコンセットの例です。Genericons (GPL), Post Formats & Real Estate Icons (GPL), WooCons Set#1 (GPL), Gallery2 Icons (GPL), Lullacons Pack #1 (GPL), GNOME DesktopIcons (GPL), Elegant Media Icons (GPL), Humility Icons (GPL), Crystal Icons(GPL), Flat For Linux (GPL), Ultimate GNOME Icons (GPL), Shrunk PidginSmilies (GPL), Twotiny Icons (GPL), Web Design Creatives (GPL), realistiKReloaded (GPL), Carpelinx (GPL), DarkGlass Reworked (GPL), Lynx Black(GPL), KDE Crystal Diamond (GPL), 26 Social Media Icons (GPL), Macchiato‒ Social and spirit20 (GPL), Faenza Icons (GPL), Lifetime Social Networks(GPL), Social Media Icons from Elegant Themes (GPL), We got icons! (GPL),Font Awesome 3.0 (SIL Open-Font License), Elusive Icons (SIL Open-FontLicense), Entypo (SIL Open-Font License),
  • 65. 9. テーマ名テーマ名のガイドラインへの適応は新規テーマにおいては必須であり、既存テーマに対しては推奨です。•  テーマは、その名前に WordPress の語句を含める事はできません。例えば「My WordPress Theme」「WordPress AwesomeSauce 」「AwesomeSaucefor WordPress 」 などが承認される事はありません。•  テーマは、例えば「AwesomeSauce Theme」のように、名前に Theme の語句を含める事はできません。
  • 66. 9. テーマ名•  テーマは、例えば「WP AwesomeSauce」のように、その名前にWPの接頭辞を使うことができます。•  テーマは、その名前にバージョン固有のマークアップ関連の用語(例えばHTML5、CSS3など)を使用する事はできません。
  • 67. 9. テーマ名•  テーマは、その名前に例えば「Blog」「Web Log」「Template」「Skin」などの用語を使用する事はできません。•  テーマは、その名前に例えば「AwesomeSauce byJohn Q 」などのように、作者のクレジットを入れることはできません。
  • 68. 9. テーマ名•  テーマは、その名前に例えば「WP Twenty Eleven」「Twenty Eleven WP」「The Twenty Eleven」など、関連するテーマの名前を含める事はできません。そして style.css のヘッダーブロックで定義されるテーマ名は、公式テーマリポジトリでのテーマスラッグとして使用される事をご注意ください。なおその際、文字は全て小文字となり、スペースはハイフンに置き換えられます。例えば「CamelCase Name」は「camelcase-name」となります。
  • 69. 10. クレジットリンクテーマは、クレジットリンクを設定する事が推奨されています。そして使用した場合は、クレジットリンクが適切である事が必須です。•  テーマは style.css 内で「Author URI 」と「Theme URI」を指定する事ができます。•  「Theme URI」が設定されている時、それは具体的にテーマに関連したページヘリンクする事が必須です。デモサイトやでもページであるとしたら、その内容はテーマ自体に関係しているはずです。•  「Author URI」が設定されている時、それはテーマ作者個人のウェブサイトまたはプロジェクト、開発ウェブサイトにリンクする事が必須です。•  テーマは、ユーザとテーマとの接点を確保するために、この2つの少なくとも一方を設定する事が推奨されています。
  • 70. 10. クレジットリンクテーマは、 必要に応じてテーマフッターに一般向けのクレジットリンクを含む事ができます。•  使用するとしても1つのみで、複数のクレジットリンクを設定する事は認められません。•  クレジットリンクを使用する場合、それは 「Theme URI」または「Author URI」のいずれかである事が必須です。•  クレジットリンクのアンカーテキストとタイトルは、関連するサイトに対して適切である事が必須です。それがスパムや SEO 目的となっている時には、テーマは自動的に棄却となる事があります。•  2つめのクレジットリンクとして「Powered by WordPress」と<http://wordpress.org>へリンクする事は許容されます。
  • 71. 10. クレジットリンクテーマは、 必要に応じてクレジットリンクを追加するためのテーマオプションを設定する事が許されています。•  そのように使用する時、テーマオプションは明示的に選択する事が可能であり、そしてデフォルトでは有効であることが必須です。•  そのように使用する時、テーマオプションは単に有効/無効を選択するのみでなく、テキストとリンクをユーザが変更できる事が推奨されます。•  テーマオプションで設定されるクレジットリンクは、先の要件を免除されますが、一方でこの機能が乱用される時には、テーマレビューチームには独自の判断でテキストとリンクを禁止する権利を有します。
  • 72. 10. クレジットリンクテーマはGPL(または互換)であるため、テーマ作者は、これらのリンクがユーザーによって保持される事を要求することは禁じられています。作者のウェブサイトへのリンクを維持するために、テーマのユーザーに依頼する適切な方法は次のとおりです。「これは完全に任意ですが、もしあなたがこのテーマを気に入ってくれたなら、私のクレジットリンクを表示してくれると嬉しいです」
  • 73. 10. クレジットリンク•  「Author URI」と「Theme URI」の妥当性の決定は、テーマレビューチームによる、唯一かつ最終的な判断に委ねられます。「Author URI」のポイントは、それが個人的なサイトという性質である事です。 「Theme URI」の場合は、単なるデモサイトというだけは不十分であり、URIは 主にテーマに関連するコンテンツを含める必要があります。•  テーマ概要に含まれるリンクは、適切に「Author URI」要件およびテーマ説明書に準じて定義されなければなりません。
  • 74. 11. テーマ説明書テーマは、任意のカスタム機能またはオプションの使用を説明するのに十分な資料を提供する事が必須です。•  テーマは設計上存在する全ての制限、エラーメッセージなど、エンドユーザに対しあらゆるドキュメントを提供する事が必須です。•  テーマは、プラグインのreadme.txt を基に readme.txtファイルを作成し、テーマファイルに同梱する事が推奨されます。•  readme.txt の代わりに、テーマはバージョンごとの変更履歴を記録したログを同梱する事ができます。
  • 75. 11. テーマ説明書テーマに含まれている説明書では、以下の点について明確にしてください。これらは多くのユーザにとって有益な情報です。•  テーマとテンプレートが何を実現するか。•  テーマ階層の命名規則に準じているか。•  あるならば、テーマの不備。•  テンプレートやスタイルシートのファイル中のコメントの詳細。特にテンプレートやスタイルシートの修正・更新に対してはコメントを付けてください。
  • 76. 11. テーマ説明書•  カスタムリライトルールや何らか特殊な追加テンプレートファイル、画像などを使用している場合、それらに係る特別な要件がある場合は、テーマ動作のために、ユーザが設定すべき内容を明示してください。•  可能であれば、サポートと質問の連絡先情報を(ウェブサイトまたはメールアドレス)提供してください。
  • 77. 12. テーマユニットテストテーマはテーマユニットテストのすべての要件を満たす事が必須です。http://codex.wordpress.org/Theme_Unit_Test
  • 78. 12. テーマユニットテスト(テスト項目)•  レイアウト•  文章の読みやすさ•  画像•  長いタイトル•  本文なし•  タイトルなし•  たくさんのカテゴリ•  たくさんのタグ•  パスワード保護•  コメント•  コメント無効•  たくさんのトラックバック•  他、各種投稿フォーマット表示テスト
  • 79. 13. テーマの旧式化テーマは、テーマリポジトリに一旦登録したら、最新に保たれなければなりません。最新バージョンの WordPress に対応した、現在のテーマレビューガイドラインに準じていないあらゆるテーマは、公開停止の対象となる可能性があります。
  • 80. 14. アクセシビリティ「accessibility-ready」タグを使用したテーマは、アクセシビリティのガイドラインを満たしている必要があります。1.  画像2.  メディア3.  見出し4.  リンクテキスト5.  キーボードナビゲーション6.  コントラスト7.  スキップリンク8.  フォーム9.  ツール10.  承認されないもの
  • 81. 14. アクセシビリティテーマアクセシビリティへの準拠は、 wordpress.org テーマリポジトリに適合したテーマに対して選択的に調査されます。リポジトリに承認された後、「accessiblity-ready」タグを持つテーマ(または最新版)は、独立したアクセシビリティ審査を受ける事になります。このレビューを通過したテーマは「accessiblity-ready」タグを使用する事が許可されます。一方、通過できたなかったテーマ作者は、「accessiblity-ready」タグなしでの再申請、あるいは要件を満たすために要求された変更を行う事が求められます。開発者はそれら「accessiblity-ready」タグ準拠のための最小要件をクリアする事が奨励されます。アクセシビリティレビューに落ちたテーマも、テーマリポジトリに加えるための承認を得る事は可能です。
  • 82. 14.1. 画像すべての装飾的な画像は、CSSを使用して実装されなければなりません。テーマ作者がテンプレートに画像を追加する場合、作者は alt 属性またはそれに準ずる何らかの手段を組み込むまなければなりません。 監査時、「a simplealt text decision tree※W3C」は、画像に適切なalt属性を使用されているかどうか確認するために使用されます。
  • 83. 14.2. メディアメディアリソースは、初期設定に対して、ユーザーの行動なしで自動再生または変更されてはなりません 。これは、オーディオ、ビデオ、またはイメージ/コンテンツスライダーやカルーセルなどのリソースが含まれています。
  • 84. 14.3. 見出しページにサブセクションの見出し要素の使用を含むテーマテンプレートは、合理的なHTMLの見出し構造を使用する必要があります。 見出しのマークアップは視覚効果のために使用する事はできません。これは良い視覚構造を提供する事を犠牲にしないような構造のため見出し要素であれば画面外に配置されるかもしれません。構造上必要な見出しは、視覚効果上 画面外に入りされる事もあります。具体的には、テーマで定義されたサブセクションは、見出し要素を使用しなければなりません 。 これは、記事の文脈で使用されるとの見出しでウィジェットのタイトルをラッピングする際、見出しに記事のタイトルが含まれるためです 。
  • 85. 14.4. リンクテキストリンクは、「続きを読む…」のような反復的な非コンテキストのテキスト文字列を避けなければなりません。 また、コンテキストから取り出された時に意味をなすべきであす。露出した URL テキスト単体は、リンクとして使用する事はできません。 コンテキスト固有のテキストが画面外に配置される事があるかもしれません。コアでの定義リンク「続きを読む」も、このガイドラインに該当してしまいます。 ただ、これらのリンクを交換するためのフィルタを使用する事ができるようになっています。そして記事のタイトルは一般に、通常の指示テキストに加えて使用されるべきです(以下、例)。
  • 86. 14.4. リンクテキスト(例)add_filter( get_the_excerpt, theme_custom_excerpt_more,100 );add_filter( excerpt_more, theme_excerpt_more,100 );add_filter( the_content_more_link, theme_content_more, 100 );function theme_continue_reading( $id ) {return <a class="continue" href=".get_permalink( $id ). >Read more: ".get_the_title($id)."</a> ;}function theme_excerpt_more($more) {global $id;return … .theme_continue_reading( $id );}function theme_content_more($more) {global $id;return theme_continue_reading( $id );}function theme_custom_excerpt_more($output) {if (has_excerpt() && !is_attachment()) {global $id;$output .= .theme_continue_reading( $id );}return $output;}
  • 87. 14.5. キーボードナビゲーションテーマ作者はナビゲーションメニューやフォーム、ボタン、テキストリンクにおいてキーボードでフォーカスした際に視覚的に明示する効果を提供しなければなりません。そしてキーボードでのナビゲーションは直感的かつ効果的でなければなりません 。ナビゲーションメニューに共通する問題は、{display:none;/display:inline;}を使用して、表示/非表示を制御するドロップダウンメニューを使用する事です。{display:none;}はリーダーからもオブジェクトとして除外されてしまうため、使用すべきではありません。実際にテストする事がナビゲーションメニューのアクセシビリティを検証するための最良の方法です。NVDA はフリー・オープンソースのWindows x Firefox で動作する素晴らしいリーダーです。 Mac やiOS においては VoiceOver を使用してください。
  • 88. 14.6. コントラストテーマ作者は、すべてのバックグラウンド/フォアグラウンドの色が、カラー明度用の Webコンテンツアクセシビリティガイドライン(WCAG)2.0に指定されたレベルAAのコントラスト比(4.5:1)以上である事を保証しなければなりません。ツール:Juicy Studio Accessibility Add-on for FirefoxWAVE Web Accessibility Toolリファレンス:WCAG 2.0 Color Criteria
  • 89. 14.7. スキップリンクテーマは、いかなるページからも直接コンテンツやナビゲーションにり着ける機構を含まなければなりません。これらリンクは、最初は画面外に配置されているとしても、スクリーンリーダーで利用できなければならず、キーボードナビゲーションでフォーカスされた時には画面内に表示されなければなりません 。最低限、以下要件に準拠する事が必須です。•  スクリーンリーダーやキーボードナビゲーションで最初に知覚される項目である事。•  リンクに移動した時、キーボードフォーカスが表示される事。•  アクティブになった時、ページのメイン領域にフォーカスが移動する事。
  • 90. 14.8. フォームコメントフォームは適切なフィールドラベルを持たなければなりませんし、formタグ内のすべてのコンテンツは、明示的にフォームコントロールに関連付けられている必要があります。投稿の際のレスポンスは知覚可能でなければなりません。単一の入力(例えば標準の検索フォームなど)が含まれるフォームには、必要に応じて入力ラベルを表示しておかないよう配置する事があります。お問い合わせフォームなど、非標準のフォームを組み込むテーマは、同じ基準を使用して審査されます。
  • 91. 14.8. フォームデフォルトのWordPressのフォームを置き換える時…•  <label>要素を削除したり、それぞれの入力から label の関連付けを解除してはいけません。•  スクリーンリーダーに対応していない、例えば AJAX などのフィードバック機構を作成してはいけません。詳細は ARIA を参照してください。
  • 92. 14.9. ツールアクセシビリティテストのための有益な開発ツールは以下URLでメンテナンスされています。Make WordPress Accessible / Useful Tools
  • 93. 14.10 承認されないもの次のいずれかを含める事は承認されません。•  tabindex の値が特定の状況を除いてマイナスあるいはゼロである事。•  accesskey 属性を含める事。•  ユーザに通知なく新しいウィンドウやタブを生成する事。
  • 94. 15.正く綴る WordPressテーマは、表示されるすべてのテキストに正しくWordPress と綴る必要があります。 W と P は大文字です。
  • 95. 余談これだけのチェックを通ってるので、公式テーマは機能が盛りだくさん、安心・安全…のハズなのです、が。私が使ってる公式テーマ準拠してない箇所があるような…?_S(Underscores)http://underscores.me/https://github.com/Automattic/_s/