【WordPress予約投稿】更新日が公開日より古くなる?違和感なく綺麗に表示させる方法

WordPressでブログ予約投稿をしたときに更新日を表示させていると、「更新日が公開日より古い日付」になってしまって違和感が出てしまうときがある。
そうならないように綺麗にブログ更新日と公開日を表示させる備忘録。
もくじ
予約投稿で更新日が公開日より古くならないよう表示させる
functions.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 null; } else { return get_the_modified_time($format); } }
更新日と公開日を表示させる場所に以下のコードを記述
<time class="date updated" datetime="<?php the_modified_date('c') ?>"><?php if ($mtime = get_mtime('Y/m/d')) echo '更新日:' , $mtime; ?></time> 公開日:<time class="entry-date date published" datetime="<?php the_time('c') ;?>"><?php the_time('Y/m/d') ;?></time>
これで読者から「ん?なんで公開した日付より更新した日付の方が古いの?このブログ予約投稿でほったらかしだな」なんて目で見られることもなくなるかもしれない。
更新日が表示されないんだけど?
使用しているWordPressのテーマの中にはデフォルトで「.updated {display:none;}」みたいにいらないことをしてくれているものもある。
「ちゃんとコード入れたのに全然更新日が表示されないんだけど…」という場合はCSSで消されていないか疑ってみるといいかもしれない。これで無駄に時間使ったなぁ…←やられた
おまけ
「とりあえず記事の更新日と公開日を表示させる」というだけであればもっと簡単。究極にシンプルにするならこれだけでいい。
公開日:<?php the_time('Y/m/d'); ?> 更新日:<?php the_modified_date('Y/m/d') ?>
もう少しちゃんとグーグルに時間とか伝えるならこんな感じ。
公開日:<time class="entry-date date published" datetime="<?php the_time('c') ;?>"><?php the_time('Y/m/d'); ?></time> 更新日:<time class="date updated" datetime="<?php the_modified_date('c') ?>"><?php the_modified_date('Y/m/d') ?></time>
「予約投稿は使わない、更新したときだけ更新日を表示してくれたらそれでいい」という場合はこれだけでOK。