WordPressの各記事に、クラス名を追加するpost_class関数を使用すると、hentryというクラスが追加されます。

このhentryとは、HTMLに構造化データを付加するMicroformatsで定義された、個々のエントリを示すクラスです。

しかし、hentry以外のクラスは自動的に付加されないので、このままでは構造化データとして意味を成しません。
そこで、hentry以外のクラスを、テンプレートに追加していきます。

タイトルを示すentry-titleと、パーマリンクを示すbookmark

タイトルにはentry-titleクラスを追加します。
また、記事のパーマリンクには、rel属性にbookmarkを追加します

このうち、entry-titleは必須項目となります。

投稿日時を示すpublishedと、更新日時を示すupdated

投稿日時にはpublishedクラスを追加します。

更新日時にはupdatedクラスを追加します。

Microformatsでは、更新日時のほうが必須項目になるので、注意が必要です。

また、MicroformatsではISO8601形式の日時の値を使う必要があります。
日時をYYYY-MM-DDhh:mm:ssというフォーマット以外で表記したい場合は、value-titleクラスを使用してISO8601形式の日時情報を付加します。

著者を示すauthor

著者(投稿者名)にはauthorクラスを追加します。

Microformatsでは、authorは必須項目です。

内容を示すentry-contentと、概要を示すentry-summary

内容(投稿の本文)にはentry-contentクラス、概要(投稿の抜粋)にはentry-summaryクラスを追加します。

通常、the_content関数は、個別記事ページでは投稿の本文を、それ以外では投稿の抜粋を表示するので、上記のコードではis_single関数で条件分岐しています。

Microformatsを使用する問題点

エントリ(記事)をMicroformatsで構造化する場合、以下の項目が必須になります。

  • hentry — エントリ
  • entry-title — エントリのタイトル
  • updated — エントリの更新日時
  • author — エントリの著者

このうち、タイトルは大抵のサイトで表示すると思いますが、著者(投稿者)は表示しない場合も多いと思います。
また、更新日時でなく投稿日時を表示する事も多いでしょう。

これらの場合、Microformatsの必須項目の仕様が足かせになってしまいます。

解決策として、post_class関数でhentryクラスが追加されないようにして、構造化にはMicroformats以外を採用するのも一つの方法です。

これについては、別の記事を作成する予定です。