ワードプレスのサイトで日付を取得するためによく使われるタグは、<?php the_date(); ?>
です。
しかし、このままでは単純にテキストとして日付の文字列が表示されるだけで、検索クローラーに対して公開日・更新日の情報を通知できません。
そこで、構造化マークアップも意識したうえで、人間にもクローラーにもページの日付情報を正しく伝えるように出力したいところです。
目次
日付と更新日を取得
まずは、functions.php
に以下のコードを記述します。
// 「公開・投稿日」or「最終更新日」を表示する - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ function get_mtime($format) { $mtime = get_the_modified_time('Ymd'); $ptime = get_the_time('Ymd'); if ($ptime >= $mtime) { return null; } else { return get_the_modified_time($format); } }
日付と更新日を表示
続いて、single.php
や page.php
など、日付・更新日を表示したいテンプレートファイルに以下のコードを記述します。
<div class="entry_date"> <?php if($mtime = get_mtime('Y.n.j')) { ?> 更新日:<time itemprop="dateModified" datetime="<?php echo get_mtime('Y-m-d') ?>" class="update_date"><?php echo $mtime ?></time> 公開日:<span itemprop="datePublished" content="<?php echo get_post_time('Y-m-d') ?>" class="publish_date"><?php echo get_post_time('Y.n.j') ?></span> <?php } else { ?> 公開日:<time itemprop="datePublished" datetime="<?php echo get_post_time('Y-m-d') ?>" pubdate="pubdate" class="update_date"><?php echo get_post_time('Y.n.j') ?></time> <?php } ?> </div>
<time>
タグの属性値であるdatetime
は、YYYY-MM-DD
の形式で出力する必要があります。
ただし、<time>
タグは、1ページ内で1度しか使ってはいけません。
そこで、内容の更新があったページの場合は更新日に、更新が無い場合は公開日 <time>
タグを振り当てる形にしています。