WordPressの構造化・hentryエラー対策
WordPressテーマを自分で構築しない方は分からないかもしれませんが、post_class()関数が必須であり、single.phpやpage.phpのコンテンツ部分のdivタグの中に入れて使います。
この関数を使うとさまざまなクラスを自動で出力でき、このクラス名を使用してcssでデザインできるようになるのですが、同時にhentryも出力されて問題が起こります。
確認方法は、Search Console(旧ウェブマスターツール)にログイン » 検索での見え方 » 構造化データと進むと、エラーがある場合は赤いラインが表示されるのですぐわかります。
ただし、サーチコンソールに登録して間もない場合やテーマを変更して間もない場合は反映されていないので、場合により数ヶ月要する可能性があるでしょう。
もしエラーであればSEO的にもよろしくないので修正しなければならず、single.phpを構造化データ対応に修正するか、functions.phpでhentryを削除するか、のいずれかの対策が必要です。
一応、post_class()関数を削除する方法もありますが、WordPressで必須とされているだけに、この方法は得策ではありません。
single.phpを構造化データ対応に修正する
hentryを出力してエラーになるのは、entry-title、updated、authorの3つがないためなので、これを投稿ページのテンプレートファイルであるsingle.phpに追加します。
まずは、single.phpを子テーマホルダーにコピペして、これに修正を加えていきます。
entry-titleはそのページのタイトルを出力している部分のclassに入れるだけですが、すでに他のclass名が入っている場合は、半角スペースを空けてentry-titleを入力してください。
<h1 class="entry-title"><?php the_title(); ?></h1>
updatedは公開日時を表示している部分をspanタグで囲み、その中のclassにdate updatedとして入れます。
<span class="date updated"><?php the_time('Y年n月j日'); ?></span>
authorは著作者名ですが、テーマによってはない場合があります。
the_author()を検索し、あれば次のソースコードに書き換え、なければ追加しなければなりませんが、場合によってcssでデザインしなければならないでしょう。
<span class="vcard author"><span class="fn"><?php the_author(); ?></span></span>
上記でも説明していますが、サーチコンソールはすぐに反映されず、また、エラーがなくなっていても一気に全ページが問題なしになるのではなく、少しずつ反映されていくため、気長に待ってください。
なお、この方法はある程度の知識と経験が必要なため、無料のテーマ等を使っている方は次の方法がおすすめです。
functions.phpでhentryを削除する
一番いいのは、上記の構造化データに対応させる方法ですが、ホームページ制作の経験が浅い方には難しいため、次のプログラムをfunctions.phpに記入してアップロードしてください。
もちろん、子テーマを利用するのがベストです。
function remove_hentry( $classes ) { $classes = array_diff($classes, array('hentry')); return $classes; } add_filter('post_class', 'remove_hentry');
これでhentryが出力されなくなるので、エラーも次第になくなります。
関連記事
WordPressは、テンプレートさえ用意すれば誰でも簡単にホームページを作成できる便利なシステムですが、時にやり過ぎの機能があります。 ...
みなさんはどのようなWordPressテーマを利用していますか? 多くの人が無料のWordPressテーマを利用し、次いで購入したり...