[WordPress] 記事の更新日を表示する

小ネタです。 Wordpressで使っているテーマが記事の「公開日」だけしか表示してくれないので、「更新日」も表示するよう修正しました。

結論から言うと以下のようなコードをテーマに埋め込むだけです。

<span title="公開日">
  公開日:<time itemprop="datePublished" datetime="<?php the_time('c');?>"><?php the_time('Y-m-d');?></time>
</span>
<?php if( get_the_time('Ymd') !== get_the_modified_date('Ymd')){ ?>
  <span title="更新日">
    更新日:<time itemprop="dateModified" datetime="<?php the_modified_date('c');?>"><?php the_modified_date('Y-m-d'); ?></time>
  </span>
<?php } ?>

修正結果

「公開日」と「更新日」が異なる場合は以下のように両方表示するようになります。

「公開日」と「更新日」が同じ場合は「公開日」だけを表示します。

解説

Wordpressで公開日と更新日を取得する

それぞれ次の関数が用意されており、テーマ内から利用できます。

公開日
表示する場合はthe_time()、処理に利用する場合(戻り値として欲しい場合)はget_the_time()
更新日
表示する場合はthe_modified_date()、処理に利用する場合(戻り値として欲しい場合)はget_the_modified_date()

引数はPHPdate関数と同じようです。

検索エンジン対策

今回の目的は人間に対する情報を増やすというものですが、Google先生の検索結果に更新日を出したかったというのがあります。現在は以下のように公開日だけが表示されていますが、更新したらそっちの日付を出して欲しいじゃないですかw

というわけでdatePublishedで公開日、dateModifiedで修正日をそれぞれ指定しています。AMPページの場合は構造化データとして用意してあげるのが良いみたいですが、このブログは基本PC向けなので今回はこれで様子を見ることにしました。

<time itemprop="datePublished" datetime="<?php the_time('c');?>"><?php the_time('Y-m-d');?>
<time itemprop="dateModified" datetime="<?php the_modified_date('c');?>"><?php the_modified_date('Y-m-d'); ?></time>

採用されるとは限らない

Googleの中の人いわく、これらの情報を表示したとしてもGoogleが公開日と更新日のどちらの日付を採用するかはアルゴリズムによって自動的に決定されるため、コントロールすることは出来ないそうです。

検索結果で表示させたい日付けをGoogleに直接伝える方法はない。 (中略) しかし、アルゴリズムで自動的に処理する方を選んだ。最終更新日から取得するページもあれば、最初の公開日を取得するページもある。どの日付けを表示するのが最も適切かをアルゴリズムが判断する。

※「海外SEO情報ブログ」より

とは言え、やらないよりはやっておいた方が良いですよね。うまく機能してくれれば儲けものくらいの気持ちが良さそうです。

参考ページ