(最終更新 : 2018/06/30)
WordPress.org の公式レポジトリにテーマを登録する際に必須になる条件の日本語訳です。原文は https://make.wordpress.org/themes/handbook/review/required/ をご覧ください。
以下でリンクされている記事は英語ですが、このページ下部にある参考リンクには日本語での参考になるリンクも記載されています。
テーマが WordPress.org の公式レポジトリに掲載されるためには、以下の必須事項すべてを満たしている必要があります。
3個以上の明確な問題があるテーマは not-approved としてチケットがクローズされることがあります。その場合でも問題を修正したあとにもう一度テーマを提出することは出来ます。
これらのチェックに加えて Theme Check プラグイン を使用してテーマをテストする必要があります。テーマチェックが何をチェックしているかは こちら (英語) から確認できます。
アクセシビリティ - Accessibility
- テーマに accessibility-ready タグがある場合、これらの条件 (英語) も満たしていること。
コード - Code
-
PHP, JavaScript のエラーがないこと。
-
有効な DOCTYPE の宣言と language_attributes があること。
-
すべての信用されていないデータはデータベースに格納される前にバリデートされ無害化 (sanitize) されていること。また信用されていないデータは出力される前にエスケープされていること。(データ検証 を参照)
-
non-presentational なフック (訳注 : 見た目に関係しないフック) を削除 / 編集しないこと。
-
Theme Check の必須条件 (英語) を満たしていること。
-
一意の接頭詞 (プレフィックス) をすべてのパブリックな名前空間、オプション、関数、グローバル変数、定数、投稿のメタ情報などに使うこと。ただしサイドバーとメニューの ID は例外とする (これらはテーマ間で同じ名前にするとウィジェット/メニューを引き継げるため)。
コアの機能と機能性 - Core Functionality and Features
-
可能な限り 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.9が最新であれば4.6)。
-
管理バーを隠す、削除する、非表示するなどをしないこと。
見た目 vs 機能性 - Presentation vs Functionality
-
テーマのオプションを擬似的なカスタム投稿タイプにしないこと。また、重要なユーザーデータを保存しないこと。
-
デザインに関連しない機能をテーマに含めないこと。(訳注:そういった機能はプラグインで提供します) (プラグインテリトリー (英語))
-
デモのコンテンツを使用してオプションの仕組みをユーザーに表示することは可能だが、プレースホルダコンテンツではなく、スターターコンテンツ (英語) や既存のコンテンツ、インストール手順を使用する。それらはサイトの訪問者でなく edit_theme_options 権限を持つユーザーへのみ表示させるようこと。
-
WordPress.org 上のテーマプレビュー上にプレビュー、デモデータの表示及びそれの操作をしないこと。
-
Gutenberg (WordPress の次期エディタ) のカスタムブロックを追加しないこと。
- アイキャッチ画像が設定されていない時に表示するプレースホルダ・デフォルト画像は 次のルール (英語) を守る必要があります。
ドキュメンテーション - Documentation
- テーマが有するすべてのカスタム機能、テンプレート、オプションや制限事項 (メニュー制限など) に説明を用意すること。またこれらに関する十分なドキュメントが提供されていること。
言語 - Language
-
テーマにおけるすべての文字列を翻訳できる状態にすること。 (訳注 : i18n for WordPress Developers (日本語 Codex) を参照)
-
style.css 内にテキストドメインを記載すること。
-
style.css 内に記述した一意のテーマスラッグ (theme slug) を使うこと。フレームワークを使用する場合でも使うスラッグは2つ以下にすること。
-
テキストに使用する言語を一つの言語で統一すること。 (どの言語でも使用可能)
ライセンス - Licensing
-
100% GPL ライセンス、もしくは 100% GPL 互換ライセンス (英語) になっていること。
-
コピーライトとライセンスを明確にすること。style.css 内の “license” と “license uri” を使用します。
-
同梱されているすべてのリソース、例えばフォントや画像などのライセンスを明確にすること。
-
すべてのコードとデザインが自分自身のもの、もしくは法律上自分の所有物となっているものであること。他のデザインのコピーやクローンをしないこと。
-
フロントエンドに表示されるコピーライトがテーマ作者のコピーライトではなく、使用しているユーザーのものになっていること。
名前付け - Naming
-
テーマ名に “WordPress” 及び “Theme” を使用しないこと。
-
子テーマの名前に親テーマの名前を含めないこと (子テーマと親テーマの制作者が同じの場合を除く)。
-
フロントエンドに表示される場所で正しい “WordPress” のスペルを使うこと。”W” 及び “P” を大文字にし、”Word” と “Press” の間にはスペースを挟まない。
オプションと設定 - Options and Settings
-
テーマオプションを実装するには テーマカスタマイザー (英語) を使うこと。
-
オプションは一つの配列に保存すること。
-
常識的なデフォルト値 (英語) を使い、デフォルト設定はデータベース内に書かないこと。
-
設定を編集できるユーザーを判別するには edit_theme_options 権限を使うこと。管理者のような権限グループや他の権限 (edit_themes や manage_options) よりもそちらを使うべき。
プラグイン - Plugins
-
テーマ内にプラグインを含めないこと。
-
テーマの動作のためにプラグインを要求しないこと。
-
テーマから WordPress.org もしくは他サードパーティサイトのプラグインを 推奨 することができる (サードパーティサイトの場合は無料・有料問わず、ただし GPL ライセンスされているもののみ)。
-
テーマで TGM Plugin Activation を使ってプラグインを宣伝することは可能。ただしこれを使用して宣伝できるプラグインは WordPress.org のプラグインディレクトリ上にあるもののみ。プラグインを推奨にするため、設定の引数に
'required' => false
を使う。 -
テーマ内にオプションフレームワークのようなライブラリを含むことは可能。ただしそれらも要求事項を満たしている必要あり。
スクリーンショット - Screenshot
-
スクリーンショットがテーマの外観を適切に表現しているものであること。
-
スクリーンショット内でテーマがサポートするプラグインや設定、テンプレートを表示させることは出来る。
-
スクリーンショットがロゴやモックアップでないこと。
-
スクリーンショットが 1200 x 900px より大きくないこと。
- スクリーンショット内でテーマの特徴、機能性または統計情報を含まないダミーテキストのみ表示することができる。ただし、広告のように読めるテキスト。
- ダミーテキスト例: Lorem ipsum (もしくはそれと似たような自動生成されたテキスト)、作成したテーマ、企業、サービスもしくは商品を描写しないテキスト
プライバシー - Privacy
-
ユーザーの許可なしに開発者にデータを送るようにしないこと。またユーザーデータの収集機能を付ける場合、必ずオプトインにし、デフォルトでは無効状態にしておくこと。(訳注 : テーマオプションを使ってユーザーに有効無効を切り替えさせます)
-
短縮 URL をテーマ内で使わないこと。
販売・クレジットとリンク - Selling, credits and links
-
Theme URI は任意の事項。
-
使用する場合、WordPress.org 上でホスティングされているテーマに関するもの (訳注 : 「申請しこれから .org 上にホスティングされるテーマ」の意) にリンクすること。
-
リンク先がデモサイトの場合、そのコンテンツはテーマ自身に関することにし、テストデータにしないこと。
-
Theme URI に WordPress.org を使わないこと。これの使用は公式テーマのみが可能。
-
Author URI は任意の事項。使用する場合、テーマ作者の個人 Web サイトやプロジェクト、もしくは開発用の Web サイトにリンクすること。
-
フッタークレジットには style.css 内に記述された Theme URI もしくは Author URI のどちらかのみが使用されていること。
-
ただし WordPress.org へのリンクはいつでも使用することが可能。(訳注 : これは上記の「一つのリンクのみ」にはカウントされません)
-
テーマ販売をしている場合、WordPress.org にテーマを登録するには GPL ライセンスの元販売すること。(説明 (英語))また、それを明確に、レビュワーとユーザーが簡単に探せる場所に記述する必要がある。
-
見苦しすぎるほどにテーマの宣伝をしないこと。例 (英語)
-
アフィリエイト URL ・リンクを含まないこと。
スタイルシートとスクリプト - Stylesheets and Scripts
-
スクリプトやスタイルシートをハードコーディングしないこと。
-
圧縮したスクリプトやスタイルシートを使う場合、圧縮前のファイルもテーマ内に含めること。
-
jQuery のようなコアにバンドルされているスクリプトを使用する場合は、テーマで用意したものを使うのではなく、コアにバンドルされているスクリプトを使用すること。
-
使用するすべてのスクリプトやリソースは外部リンク (訳注 : CDN 等) ではなくテーマ内に含めること。ただし Google フォントは使用可能。
テンプレート - Templates
-
テーマ内で使用する場合、下記の標準のテンプレートファイルをそれぞれの関数によって呼び出すこと :
-
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() を使って呼び出すこと。
-
フロントページの設定に従って正しい内容が表示されること (参照 (英語))。
テーマレビューチームは現在これらのチェックを自動化しようとしています。
上記の必須項目に加えて 推奨項目 (英語) も考慮するべきです。推奨項目はテーマがより良いものになるようなベストプラクティスとして含めるべきアドバイスです。