WordPressのテーマチェックで出るエラーまとめ

Wordpress
スポンサーリンク

必須エラー

ファイル style.css で DOS と UNIX 両方の改行形式が見つかりました。これは SVN レポジトリで問題を引き起こすため、テーマが承認される前に修正する必要があります。どちらか一方の改行形式に統一してください。

上記のエラーが出た場合は、style.cssの改行コードにCRLFとLFの両方が含まれています。解決方法としては、テキストエディタなどで改行コードを変更してあげるだけです。

DOSというのはCR+LF形式でWindowsで採用されています。

UNIXではLF形式で改行処理をしており、MacOSやLinuxで採用されています。

style.css ヘッダーに 〇〇 がありません

style.cssの冒頭に記載するテーマ情報に不足している項目があります。

WordPressのテーマとして認識させるにはTheme Nameさえあれば良いのですが、テーマチェックには以下の7項目が必要になります。

/*
Theme Name: テーマの名前(必須)
Author: 作者の名前
Description: テーマの説明
Version: テーマのバージョン
License: テーマのライセンス
License URI: テーマのライセンスのURI
Text Domain: テキストドメイン
*/

その他の項目はCodexに記載がありますのでテーマ作成の際には目を通しておきましょう。

body タグ内の body_class 呼び出し が見つかりません。

<body>タグ内にbody_class()の呼び出しがないために起こります。以下のように<body>内でbody_class()を記載すればエラーは解消されます。

<body <?php body_class(); ?>>

WordPressでは<body>に様々なクラスを挿入するので、body_class()の呼び出しは忘れないようにしましょう。

wp_body_open action or function call at the very top of the body just after the opening body tag が見つかりません。

wp_body_openアクション、またはwp_body_open()関数が不足しています。

wp_body_open()は、<body>タグ直下に挿入したいスクリプトなどを記載するための関数とアクションフックです。

使い方としては、HTML側の<body>タグwp_body_open()を記載しておき、wp_body_openフックで挿入したいソースコードなどを追加します。

Step1. <body>直下にwp_body_open()を追記

<body <?php body_class(); ?>>
<?php wp_body_open(); ?>

エラーを消したいだけであれば、上記の記載のみでOKです。

Step2. wp_body_openフックで挿入したいコードを追加

<body>直下に挿入したいコードがある場合には以下のようにして出力します。挿入したいコードがない場合には記載しなくても構いません。

function body_hook(){
    echo 'some code';
}

add_action('wp_body_open','body_hook');

post_class が見つかりません。

body_classと同じように、投稿にもpost_classが必要です。多くの場合、<article>タグに追加することが多いかと思います。

また、記載しなくてもエラーにはなりませんが投稿を区別できるid属性も挿入しておくことが推奨されます。

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

WordPressが書き出すもの以外にも独自のクラスを追加したい場合、post_class()の引数を使うことができます。

<article <?php post_class( 'article' ); ?>>

Found echo get_template_directory_uri in 〇〇. get_template_directory_uri() must be escaped when output as part of a link or image source. Use esc_url() for link attributes. A manual review is needed.

get_template_directory_uri()がエスケープ処理されずに出力しているために起こります。

この関数が返す値はurlなので、esc_uri()関数でエスケープしてやればOKです。

<img src="<?php echo esc_url( get_template_directory_uri() . '/some/image.png' ); ?>" alt="">

警告エラー

Found PHP short tags in file ~

PHPショートタグ<?php ?> が含まれています。WordPressではショートタグの使用は推奨されていません。ショートエコータグ<?= ?>も同様にエラーが出ます。

テーマファイル内のショートタグを通常のPHPタグに変更しましょう。

<? the_content(); ?>
↓
<?php the_content(); ?>

<?= get_the_content(); ?>
↓
<?php echo get_the_content(); ?>

推奨エラー

テーマのcssには〇〇のcssクラスが必要です。○○ css class is recommended in your theme css.

WordPressが使用するCSSクラスを定義する必要があります。テーマチェックに必要なクラスは以下の8項目です。

.wp-caption,
.wp-caption-text,
.sticky,
.gallery-caption,
.bypostauthor,
.alignright,
.alignleft,
.aligncenter
{}

テーマチェックを通すだけであれば定義さえしてあれば良く、中身は空でも構いません。ただし、上記クラスはWordPressで頻繁に使われているため、きちんと値を設定しておいた方が良いです。

例えば、.alignright, .alignleft, aligncenterなどはそれぞれ右寄せ、左寄せ、中央寄せなのでユーザも頻繁に使うと予想されます。このプロパティをきちんと設定していないとWordPressの編集画面で非右寄せを選んだにも関わらず実際の表示では右寄せになっていない、などの現象が起こります。

コメント

タイトルとURLをコピーしました