(最終更新 : 2017/09/25)
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 など)
-
WordPres 機能に対して有料でしか使えないようにする制限をかけないこと
-
何かを編集する際のハードコードをさけること。その代わりに関数の引数、フィルターやアクションフックを使用してください。例えば、wp_title 関数は その関数に備えられているフィルター を使用して編集されている必要があります。
-
チャイルドテーマが提出するテーマからきちんと作れ使用できるようになっていること (Child theme ready)
-
style.css 内の テーマタグ (英語) と説明 (description) がテーマの実際の機能とデザインに一致していること。また3つ以上の subject tags を使用することは出来ません。(Theme Tag List (英語) を参照)
-
正しいテンプレートタグ・アクションフック・フィルターフックを使用すること
-
comments.php を含めること (comments_template() を使います)
-
テーマに後方互換性をつけることも出来ますが、3つのメジャーバージョンだけで十分です (4.8が最新であれば4.5)。
-
管理バーを隠したり削除したり非表示にしないこと
- The theme options should not be pseudo custom post types and save non-trivial user data.
- Non-design related functionality is not allowed. (See: Plugin territory examples)
- Demo content may be used to show the user how the options work. Use starter content, existing content, or installation instructions instead of placeholder content. Installation instructions should only be visible to users with the edit_theme_options capability, not to visitors.
- Any custom features, templates, options or any limitations (for example menu restrictions), should be explained. Enough documentation should be provided.
- 全てのテーマにおける文字列は翻訳できる状態にする
- style.cssにテキストドメインを記載する
- style.cssで使っているようなユニークなテーマスラッグを使うこと。もしフレームワークを使っている場合には2つ以上のユニークなスラッグを使うこと。
- どんな言語でもテキストに利用することができますが、全てのテキストは同じ言語で統一すること。
- Be 100% GPL and/or 100% GPL-compatible licensed.
- Declare copyright and license explicitly. Use the license and license uri header slugs to style.css.
- Declare licenses of any resources included such as fonts or images.
- All code and design should be your own or legally yours. Cloning of designs is not acceptable.
- Any copyright statements on the front end should display the user’s copyright, not the theme author’s copyright.
- Theme names must not use: WordPress, Theme.
- Child themes should not include the name of the parent theme unless the themes have the same author.
- Spell “WordPress” correctly in all public facing text: all one word, with both an uppercase W and P.
- Use the Customizer for implementing theme options
- Save options in a single array.
- Use sane defaults and don’t write default setting values to the database.
- Use edit_theme_options capability for determining user permission to edit options, rather than rely on a role (e.g. “administrator”), or a different capability (e.g. “edit_themes”, “manage_options”).
- Themes cannot include plugins.
- Themes cannot require plugins to work.
- Themes may only recommend plugins that are available in the WordPress.org Plugin Directory.
- Themes may use TGM Plugin Activation to recommend plugins.
- Themes may include libraries such as option frameworks (these must pass the requirements).
- The screenshot should be a reasonable representation of what the theme can look like.
- The screenshot may optionally show supported plugins, settings and templates.
- The screenshot should not be a logo or mockup.
- The screenshot should be no bigger than 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.
- No URL shorteners used in the theme.
- Theme URI is optional.
- If used, it must be about the theme we’re hosting on WordPress.org.
- If the URI is a demo site, the content must be about the theme itself and not test data.
- Using WordPress.org in the Theme URI is reserved for official themes.
- Author URI is optional. If used it is required to link to an author’s personal website or project/development website.
- Themes may have a single footer credit link, which is restricted to the Theme URI or Author URI defined in style.css.
- Themes may also have an additional footer credit link pointing to WordPress.org.
- If you are a theme shop you should be selling under GPL to be in the WordPress.org repo (See explanation).
- Themes should not display “obtrusive” upselling. Examples.
- No hard coding of script and style files.
- No minification of scripts or files unless you provide original files.
- Required to use core-bundled scripts rather than including their own version of that script. For example jQuery.
- Include all scripts and resources it uses rather than hotlinking. The exception to this is Google Fonts.
-
If used in the theme, standard template files are required to be called by their respective function:
- header.php (via get_header()).
- footer.php (via get_footer()).
- sidebar.php (via get_sidebar()).
- searchform.php (via get_search_form()).
-
If you use the relevant templates, your theme should include:
- wp_head() – (immediately before </head>).
- body_class() – (inside <body> tag).
- $content_width.
- post_class().
- wp_link_pages().
- the_comments_navigation(), the_comments_pagination().
- the_posts_pagination(), the_posts_navigation().
- wp_footer() – (immediately before </body>).
-
Custom template files should be called using get_template_part() or locate_template().
-
Display the correct content according to the front page setting. (See explanation)
It’s worth noting we are working to automate a lot of the above requirements.
Along with the required items, you should also consider the recommended items. The recommended items are there to make sure your theme is the best it can be and good advice to include as best practice.