【ha-Basic】テーマを「Theme Check」プラグインでチェックし、修正すべき点を直しました

公開日: 更新日: 制作備忘録
Knowledge Base Wordpress ha-Basic テーマ




【この記事の目次】- 必要な部分だけ見たいときにどうぞ - [表示する]

WordPressには自作テーマを作った際Wordpressで推奨される機能や記述がきちんとされているかをチェックするためのページがあります。

な、なんじゃこりゃ・・・いろいろありすぎて良く分かりませんし、とっても面倒な感じです。まあきちんとhtmlで出力され、表示崩れなどがなければWordpressであろうとなかろうと関係ない話でもありますし、公式リポジトリで配布する予定もありませんので、あえてチェックする必要はないかとも思いましたが、興味があったので一応調べてみました。

とはいっても↑のリンクの方法ではちょっと大変・・ということで、この基準を元にテーマの内容をチェックしてくれるという

を使ってテストしてみました。

すると・・・基本いろいろな参考サイトから必要な機能を【ha-Basic】向けに加工して実装しているものが多いのでいろいろと出てきました。できる限りの対応をしていくことにしましたので、エラー内容と改善方法を備忘録として残しておきます。
※info項目はテーマ内に日本語(マルチバイト文字)が含まれているというものばかりで「そんなことわかってるよ!」という内容でしたから無視することにしました。これを解消するには多言語対応させて日本語文字列をすべて英語にし、翻訳ファイルの用意と読み込みソースの追加をしないといけませんから・・・。

指摘された内容に対してどう対処したかという書き方にしています。

☆☆ この機能は【ha-Basic】テーマ バージョン1.1で実装(対応)済みです ☆☆

必須項目とされていた項目と対処

必須: テーマの css には .wp-caption .wp-caption-text .sticky .gallery-caption .bypostauthor .alignright .alignleft .aligncenterの css クラスが必要です。

必要なCSSセレクタと適用する要素がありませんよというもの(複数あったのでまとめました)です。使われるの??というものばかりでしたし、どこかからサンプルを使ってというのもどうかと思いましたのでセレクタだけ書いて内容は空という行を追加して対処しました。

実際に追加したのが以下の行

/********** theme checkプラグインで必須と言われたもの **********/
.wp-caption{}
.wp-caption-text{}
.sticky{}
.gallery-caption{}
.bypostauthor{}
.alignright{}
.alignleft{}
.aligncenter{}

必須: style.css ヘッダーに Text Domain: がありません。

後から出てくるコードに翻訳対象文字列があったようで、それに対するテキストドメインの設定がありませんよということでしたので、「Text Domain: ha-basic」をStyle.cssの先頭コメント内に入れて完了。

必須: 待機状態のコメント返信のスクリプトを見つけることができません。プラグインとテーマの移行/2.7/Enhanced Comment Displayをご覧ください。

これについては実際よく分かりません。リンク先の内容からすると、ヘッダーの「wp_head()」手前に以下のコードを入れることになっているらしいので挿入しました。

<?php if ( is_singular() ) wp_enqueue_script( "comment-reply" ); ?>

必須: ファイル single.php で TEMPLATEPATH が見つかりました。代わりに get_template_directory() を使用してください。

これは完全にコードの見落としですね。仰る通り・・ではなくget_template_part()を使って修正しました

<?php include( TEMPLATEPATH . '/related-entry-mobile.php' ); ?>

<?php get_template_part('related-entry-mobile');//関連記事?>
に、
<?php include( TEMPLATEPATH . '/related-entries.php' ); ?>

<?php get_template_part('related-entries');//関連記事?>
にそれぞれ変更しました。

必須: コンテンツの幅が定義されていません。例:

コンテンツ幅が不明(指定されていない)場合の幅が指定されていませんよ!ということでしたので、functions.phpへ

if ( ! isset( $content_width ) ) {$content_width = 840;}
を挿入して対処しました。

必須: このテーマにはコメントのページ送り用のコードが含まれていません。paginate_comments_links()、the_comments_navigation、the_comments_pagination、next_comments_link()、previous_comments_link() のいずれかを使ってコメントのページ送りを追加してください。

ひとまずcomment.phpのリスト下に

<?php paginate_comments_links(); ?>
を追記して対応しました(オプション項目なし)

必須: wp_link_pages が見つかりません。wp_link_pages

本文内に

<!–nextpage–>
という改ページタグが入った時のページ送りがありませんということなので、single.phpのタグ出力下へ
 <?php wp_link_pages(); ?>
を挿入して対処しました。

必須: language_attributes が見つかりません。language_attributesをご覧ください。

現在言語指定は通常のhtmlコードで書いているのですが、

<html <?php language_attributes(); ?>>
を使いなさいとのことでしたので、header.phpで今までのコード
<html lang="ja">
の代わりに↑のコードを挿入しました。

多言語対応(翻訳適用)用にするためこの方法が必須なようです。

必須: attribute_escape() が functions.php ファイルで見つかりました。バージョン2.8では推奨されていません。 代わりに esc_attr() を使う。

アイキャッチ画像、ビュー数、メタ情報を管理画面の一覧へ表示するのに使っているコード内で2か所ありましたので、修正して対応しました。

警告とされていた項目と対処

警告: ファイル single.php 内に ---------- が見つかりました。 Google 広告コードが検出されました 。

テーマファイル内に直接記述されているアドセンス広告コードがありますよ!とのこと。このサイトはアドセンスを使っていてコードも挿入してますから出て当然の警告です。

配布するテーマのファイル内に入っている状態で他のドメインで使われると・・・ということに対する警告です。

警告: テキストドメインのない翻訳関数が見つかりました。

comment.php内とfunctions.phpのコメント関係の記述にいくつか翻訳用の設定があるのですが、これはすべて日本語で記述してしまっているので不要になります。が、一応将来のために残しておきました(要するに警告は無視状態)。

警告: このテーマは add_shortcode() 関数を使っています。ショートコード定義はプラグインの領域の機能です。

これはprism.jsでコード表示する際に囲みショートコードを使っていることと、記事一覧リストをショートコード挿入できるようにしていることからきているので対応のしようがない項目として無視しました。

警告: 1つ以上のテキストドメインがこのテーマ内で使用されています。これはテーマが WordPress.org の言語パックと互換性がないことを意味します。

見つかったドメインは ha-basic, bonestheme です・・・なるほど、comment.phpとfunctions.phpへ挿入したコードは他のサイトに掲載されていたコードを流用しましたから、ある程度はリネームしましたが、どうやら書き換えが完全でなかったようです。

確認したところテーマのcomment.php内とfunctions.php上で発見しましたのでリネームして対処しました。


これですべての必須項目はクリアされ、理由の分からない警告はすべて解消しました。

いつでもご相談・サイトカスタマイズの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】