(最終更新 : 2017/09/27)
WordPress.org の公式レポジトリにテーマを登録する際に必須になる条件の日本語訳です。原文は https://make.wordpress.org/themes/handbook/review/required/ をご覧ください。
テーマが WordPress.org の公式レポジトリに掲載されるためには、以下の必須事項すべてを満たしている必要があります。
5個以上の明確な問題があるテーマは not-approved としてチケットがクローズされることがあります。その場合でも問題を修正したあとにもう一度テーマを提出することは出来ます。
これらのチェックに加えて Theme Check プラグイン を使用してテーマをテストする必要があります。テーマチェックが何をチェックしているかは こちら (英語) から確認できます。
- テーマに accessibility-ready タグがある場合、これらの条件 (英語) も満たしている必要があります。
-
PHP, JavaScript のエラーがないこと。
-
有効な DOCTYPE の宣言と language_attributes があること。
-
すべての信用されていないデータはデータベースに格納される前にバリデートされ無害化 (sanitize) されていること。また信用されていないデータは出力される前にエスケープされていること。(データ検証 を参照)
-
non-presentational なフック (見た目に関係しないフック) を削除 / 編集しないこと。
-
Theme Check の必須条件 (英語) を満たしていること。
-
一意の接頭詞 (プレフィックス) をすべてのパブリックな名前空間、オプション、関数、グローバル変数、定数、投稿のメタ情報などに使うこと。
-
可能な限り WordPress の機能 を使うこと。 以下の WordPress の機能性をサポートする必要があります :
-
WordPress コアでのみ使われることを意図した機能や API を使わないこと (例 : admin pointers・private functions など)
-
WordPress の機能に対して有料でしか使えないようにする制限をかけないこと。
-
コンテンツを編集できるようにするため、ハードコード(訳注:テーマ内のコードへの直接の記述)を避けること。その代わりに関数の引数、フィルターやアクションフックを使用してください。例えば、wp_title 関数は その関数に備えられているフィルター を使用して編集されている必要があります。
-
提出するテーマから子テーマがきちんと作れて、かつ使用できるようになっていること。 (Child theme ready)
-
style.css 内の テーマタグ (英語) と説明 (description) がテーマの実際の機能とデザインに一致していること。また3つ以上の subject tags を使用することは出来ません。(Theme Tag List (英語) を参照)
-
正しい テンプレートタグ・アクションフック・フィルターフックを使用すること。
-
comments.php を含めること。 (comments_template() を使います)
-
テーマに後方互換性をつけることも出来ますが、3つのメジャーバージョンだけで十分です (4.8が最新であれば4.5)。
-
管理バーを隠したり削除したり非表示にしないこと。
-
テーマのオプションを擬似的なカスタム投稿タイプにしないこと。また、重要なユーザーデータを保存してはいけません。
-
デザインに関連しない機能をテーマに含めないこと(訳注:そういった機能はプラグインで提供しましょう)。(プラグインテリトリー (英語))
-
デモのコンテンツを使用してオプションの仕組みをユーザーに表示することはできますが、プレースホルダコンテンツではなく、スターターコンテンツ (英語) や既存のコンテンツ、インストール手順を使用してください。インストール手順はサイトの訪問者には表示させないようにし、edit_theme_options 権限を持つユーザーへのみ表示させるようにするべきです。
- テーマが有するすべてのカスタム機能、テンプレート、オプションや制限事項 (メニュー制限など) へは説明を用意すること。これらに関する十分なドキュメントが提供されているべきです。
-
テーマにおけるすべての文字列は翻訳できる状態にすること。 (訳注 : i18n for WordPress Developers (日本語 Codex) を参照)
-
style.css 内にテキストドメインを記載すること。
-
style.css 内に記述した一意のテーマスラッグ (theme slug) を使うこと。フレームワークを使用する場合でも使うスラッグは2つ以下にすること。
-
テキストに使用する言語を一つの言語で統一すること。 (どの言語も使用可能です)
-
100% GPL ライセンス、もしくは 100% GPL 互換ライセンス (英語) になっていること。
-
コピーライトとライセンスを明確にすること。style.css 内の "license" と "license uri" を使用します。
-
同梱されているすべてのリソース、例えばフォントや画像などのライセンスを明確にすること。
-
すべてのコードとデザインが自分自身のもの、もしくは法律上自分の所有物となっているものであること。他のデザインのコピーやクローンをすることは出来ません。
-
フロントエンドに表示されるコピーライトがテーマ作者のコピーライトではなく、使用しているユーザーのものになっていること。
-
"WordPress" 及び "Theme" をテーマ名に使用しないこと。
-
子テーマの名前に親テーマの名前を含まれないこと (子テーマと親テーマの制作者が同じの場合を除く)。
-
フロントエンドに表示される場所で正しい"WordPress" のスペルを使うこと。"W" 及び "P" を大文字にし、"Word" と "Press" の間にはスペースを挟みません。
-
テーマオプションを実装するには テーマカスタマイザー (英語) を使うこと。
-
オプションは一つの配列に保存すること。
-
常識的なデフォルト値 (英語) を使い、デフォルト設定はデータベース内に書かないこと。
-
設定を編集できるユーザーを判別するには edit_theme_options 権限を使うこと。管理者のような権限グループや他の権限 (edit_themes や manage_options) よりもそちらが好ましいです。
-
テーマ内にプラグインを含まないこと。
-
テーマの動作のためにプラグインを要求しないこと。
-
テーマは WordPress.org のプラグインディレクトリにあるプラグインを推奨することのみ可能。
-
テーマ内でプラグインを推薦するには TGM Plugin Activation を使うこと。
-
テーマ内にオプションフレームワークのようなライブラリ(ただし要求事項を見対している必要があります)を含むことも可能。
-
スクリーンショットがテーマの外観がどう見えるのかを適切に表現しているものであること。
-
スクリーンショット内ではサポートされているプラグインや設定、テンプレートを表示させることは可能。
-
スクリーンショットがロゴやモックアップでないこと。
-
スクリーンショットが1200 x 900px より大きくないこと。
-
Don’t phone home without informed user consent. Make any collection of user data “opt-in” only and have a theme option that is set to disabled by default.
-
短縮 URL をテーマ内で使わないこと。
-
Theme URI は任意の事項です。
-
使用する場合、WordPress.org 上でホスティングされているテーマに関するもの (訳注 : 「申請しこれから .org 上にホスティングされるテーマ」の意) にリンクすること。
-
リンク先がデモサイトの場合、そのコンテンツはテーマ自身に関することにし、テストデータにしないこと。
-
Theme URI に WordPress.org を使わないこと。これの使用は公式テーマ用に予約されています。
-
Author URI は任意の事項です。使用する場合、テーマ作者の個人 Web サイト、プロジェクトもしくは開発用の Web サイトにリンクすること。
-
フッタークレジットには一つのリンクのみを使用すること。またそのリンクは style.css 内に記述された Theme URI もしくは Author URI であること。
-
ただし WordPress.org へのリンクはいつでも使用することが出来ます (訳注 : これは上記の「一つのリンク」にはカウントされません)。
-
If you are a theme shop you should be selling under GPL to be in the WordPress.org repo (See explanation).
-
見苦しすぎるほどのテーマの宣伝を表示しないこと。例 (英語)
-
スクリプトやスタイルシートをハードコーディングしないこと。
-
圧縮したスクリプト、ファイルなどは、圧縮前のファイルと一緒に配布する場合に限って提供できます。
-
たとえばjQueryなどコアにバンドルされているスクリプトを使用する場合は、独自のバージョンを別途含めるのではなく、バンドルされたスクリプトを使用する必要があります。
-
外部リンクは利用せずに、使用するすべてのスクリプトとリソースをテーマに含めます。ただし Google フォントは例外とします。
-
テーマ内で使用する場合、下記の標準のテンプレートファイルをそれぞれの関数によって呼び出すこと:
-
header.php - get_header()
-
footer.php - get_footer()
-
sidebar.php - get_sidebar()
-
searchform.php - get_search_form()
-
-
関連テンプレートを使用する場合、テーマに下記の関数・テンプレートタグなどを含めること:
-
wp_head() - </head> の直前
-
body_class() - <body> タグ内に含める
-
the_comments_navigation() (英語), the_comments_pagination() (英語)
-
wp_footer() – </body> の直前
-
-
カスタムテンプレートファイルは get_template_part() もしくは locate_template() を使って呼び出すこと。
-
フロントページの設定に従って正しい内容が表示されること (参照 (英語))。
テーマレビューチームは現在これらの必須項目のチェックを自動化しようとしています。
上記の必須項目に加えて 推奨項目 (英語) も考慮するべきです。推奨項目はテーマがより良いものになるようなベストプラクティスとして含めるべきアドバイスです。