Theme Check の使い方

Theme Check 〜テーマチェック〜

たびたび触れているテーマチェックプラグインの紹介。
ワードプレスのテーマが適切に作られているかをチェックするプラグインで、公式のテーマ審査チームでも使用されています。

こんな方に

Web制作者の方

クライアントワークにおいて全ての機能を使うわけでは無いので、必ずクリアしなくてはいけないわけでは無いですが、セキュリティ向上のためにも、エラーなく作れるだけの技量がありエラーについて説明できるようにしておいたほうが良いです。

企業のWeb担当者の方

企業のWeb担当者の方も、このプラグインでチェックを行い、エラー箇所については説明を求める事で、制作会社の技量をはかる事ができます。

小規模事業者の方

小規模事業者の方などは、有料/無料問わず公式テーマディレクトリ以外から入手したテーマを使う場合には、一度チェックしてみましょう。

使い方

プラグインをインストールし、外観 > Theme Check と進み、テーマを選び実行するだけです。
チェックする際は、WPインストールディレクトリにあるwp-config.phpファイル80行目付近の、WP_DEBUGをtrueにしたほうがよいです。
とはいえ、今までにtrueとfalseで結果が変わった事が無いので、そのままでも結構正確な結果が得られると思います。

define( 'WP_DEBUG', true );
define( 'WP_DEBUG', false );

結果は「必須」「警告」「推奨」「情報」に分類されて表示されますので、修正をしていきましょう。

チェックに通過した画面

「推奨」「情報」はクリアしなくても、テストには通ります

テーマチェッククリア

初めての場合は何かしらエラーが出ると思いますが、2,3テーマぐらい経験すれば、すぐに一発クリアできるようになると思います。

よくあるエラー内容と対処方法

今回はクライアントワークや個人の場合に絞った対処法を書きます。
ワードプレス公式のテーマディレクトリでテーマを配布する場合は、全て対応する必要があります。
公式テーマディレクトリ以外で、配布する場合も対処しておきましょう。

必須

コンテンツの幅が定義されていません。
ここでの設定は、レスポンシブイメージに影響してくるので設定しておきましょう。
全体の幅では無く、コンテンツエリアの幅を指定します。

function wpqw_content_width() {
	$GLOBALS['content_width'] = apply_filters( 'wpqw_content_width', 800 );
}
add_action( 'after_setup_theme', 'wpqw_content_width', 0 );

style.css のヘッダーに xxx: がありません。
テーマフォルダ直下にある、style.cssの初めに、これらのテーマファイルヘッダーと呼ばれるものを記述します。
クライアントワークでは、必ずしも全て書かなくても大丈夫です。

/*
Theme Name: テーマ名 ※必須
Theme URI: テーマのURL
Description: テーマの説明
Version: テーマのバージョン
Author: テーマの作者
Author URI: テーマ作者のサイトURL
Text Domain: テキストドメイン
License: ライセンスに関する記述
License URI: ライセンスに関する記述を別ファイルにしてURLで指定
Tags: 公式テーマディレクトリでの分類用
(Template: 子テーマの場合親テーマを指定する必要があります)
*/

テーマの css には .xxxx の css クラスが必要です。
これは、記事をトップに固定や画像の回り込みなど、ワードプレスに搭載されてる機能が自動でつけるクラスに関するものになります。
クライアントワークにおいて、絶対にその機能を使わないのであれば、無くても大丈夫です。
気になる方は、空のクラスを書いておきましょう。

.wp-caption {}
.wp-caption-text {}
.sticky {}
.gallery-caption {}
.bypostauthor {}
.screen-reader-text {}
/* などなど */

language_attributes が見つかりません。
htmlのlang属性ですね。これで対応しましょう。

<html <?php language_attributes(); ?>>

comments_template が見つかりません
コーポレートサイトでは、あまりコメント投稿機能使わないですよね・・・
もし使う場合は対応しましょう。

このテーマは register_post_type() 関数を使っていますが・・・
カスタム投稿関連を、functions.phpで設定している場合に表示されます。
該当部分を抜き出してプラグイン化して対応しましょう。

警告

テキストドメインのない翻訳関数が見つかりました。
1行目のような状態の場合、エラーが出ます。
2行目のように、style.cssの初めに宣言したtextdomainを入れてください。
また3行目のように、翻訳関数を使わずに日本語を指定してもエラーになり、翻訳ファイルを使う必要がありますが、クライアントワークにおいては工数の問題などで3行目のようにしてしまう事が多々あります。

'title' => __( 'LOGOUT' )
'title' => __( 'LOGOUT', 'textdomain' )
'title' => 'ログアウト'

スクリーンショットが検出されませんでした。
1200 x 900の、screenshot.pngscreenshot.jpgを作って、テーマフォルダ直下に入れましょう。
クライアントワークでは、制作会社のロゴにして他社にも使いまわしちゃいましょう。

推奨

クリアしなくてもテストには通ります。
古いテーマなどで、廃止予定タグを使ってる場合は、早めに推奨タグに置き換えることをお勧めします。
CSS/JSをCDNで使ってる場合、テーマ内に同梱するよう表示されます。

情報

あくまで情報なので対応は必須ではありません。

印刷可能でない文字が見つかりました
CSSやPHPに日本語を使用すると、情報としてでてきます。翻訳関数など・・
コメントとして使ってる日本語の場合も出てきます・・・

ダウンロード先