WordPressのウェブマスターツールでのMicroformats問題の対処

WordPressのウェブマスターツールでのMicroformats問題の対処

Posted at January 27,2014 3:33 AM
Tag:[Microformats, WordPress]
  • Hatena ブックマーク
  • del.icio.us
  • livedoor
  • Google Bookmarks
  • Yahoo!ブックマーク
  • POOKMARK Airlines
  • ニフティクリップ
  • Buzzurl
  • newsing it!

WordPressのウェブマスターツールでのMicroformats問題の対処方法について紹介します。

1.はじめに

WordPressユーザー要注意!〜構造化データのエラーでアクセス激減」で知りましたが、WordPressで

<?php post_class(); ?>

という、記事の投稿情報のクラス属性値を表示するテンプレートタグを利用している場合、Microformatsの構成要素である「hentry」というclass属性値を出力するのですが、その他のMicroformatsの必須要素である、

  • updated
  • author

などがclass属性値として存在しない場合、ウェブマスターツールの「検索のデザイン」→「構造化データ」で大量のエラーが発生する、ということらしいです。

2.hentryの構成要素

hentryの構成要素は次のとおりです。

  • entry-title:記事のタイトル(必須)
  • entry-content:記事の内容(任意)
  • entry-summary:記事の概要(任意)
  • updated:更新日時(必須、ただし存在しない場合はpublishedを参照?)
  • published:公開日時(任意)
  • author:ユーザー名(必須)
  • bookmark:パーマリンク(任意)
  • tags:タグ(任意)

元記事ではhentryを出力しているpost_class()を削除する対処としていますが、個人的にはpost_class()はそのままにして、hentryの必須要素を網羅するのが本来ではないかと思います。

ので、次項で必須要素である、

  • entry-title
  • updated
  • published
  • author

の設定例について紹介します。

なお、hentryの仕様はさらに更新されているようなので、もしかしたらここに掲載している内容は過去のものかもしれません。2014年1月現在、ウェブマスターツールではMicroformats2未対応です。

h-entry

3.entry-titleを設定する

entry-titleは以下のように設定します。テーマ「Twenty Fourteen」のcontent.phpの抜粋です。

if ( is_single() ) :
    the_title( '<h1 class="entry-title">', '</h1>' );
else :
    the_title( '<h1 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h1>' );
endif;

4.published/updatedを設定する

published/updatedは以下のように設定します。

function.phpに以下を設定

function get_mtime($format) {
    $mtime = get_the_modified_time('Ymd');
    $ptime = get_the_time('Ymd');
    if ($ptime > $mtime) {
        return get_the_time($format);
    } elseif ($ptime === $mtime) {
        return get_the_time($format);
    } else {
        return get_the_modified_time($format);
    }
}

content.phpなどに以下を追加

公開日:<abbr class="published"><?php the_time('Y年n月j日') ;?></abbr>
<?php if ($mtime = get_mtime('Y年n月j日')) echo '最終更新日:', '<abbr class="updated">'.$mtime.'</abbr>'; ?>

5.authorを設定する

authorは以下のように設定します。

<span class="byline"><span class="author vcard"><a class="url fn n" href="<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) ?>" rel="author"><?php echo get_the_author(); ?></a></span></span>

テーマ「Twenty Fourteen」のtwentyfourteen_posted_on()から抜粋して手を加えました。

6.構造化データを確認する

正しいMicroformatsであることを確認するには、ウェブマスターツールの「構造化データ テスト ツール」を利用してください。

URLまたは出力したソースをはりつけて「プレビュー」をクリックするだけです。

OKの場合
OKの場合

NGの場合
NGの場合

関連記事
トラックバックURL


コメントする
コメントするにはまずサインインしてください。
Loading...