WordPressで最終更新日を表示する方法

公開日:2011年4月9日
最終更新日:2014年2月18日

ネット上で情報を探している場合、ブログに辿り着く事が多いのですが、その際に重要となるのがその記事が書かれた日や更新日です。

WordPressのカスタマイズ法やプラグインの解説記事を探す場合などには、その記事が最新のバージョンに対応しているのかも気になる所です。

WordPressの更新日時を表示する方法としては、以下の記述方法があります。

<?php if (get_the_modified_date('Y年n月j日') != get_the_time('Y年n月j日')) : ?>
更新日: <?php the_modified_date('') ?>
<?php endif; ?>

これで記事公開日と更新日が異なる場合のみ、更新日が表示されるようになるのですが、問題になるのが予約投稿を利用している場合です。

予約投稿というのは、更新日よりも公開日の方が先になります。記事投稿後に更新する場合には問題ないのですが、予約投稿してその後一切更新しない場合、公開日付よりも更新日付の方が古くなってしまい、混乱を招いてしまう可能性があります。

色々とやり方を探していたのですが見つからず困っていたのですが、Twitterでたずねたところ、かちびと@シロさんと、firegoby@miya0001さんに良いやり方を教えて頂きました。

予約投稿にも対応した更新日付の表示

WordPressで記事の最終更新日を取得にあるように、functions.phpとsingle.phpを修正する必要があります。

まず、以下のコードを使っているテーマのfunctions.phpに追記します。

/*
  get_the_modified_time()の結果がget_the_time()より古い場合はget_the_time()を返す。
  同じ場合はnullをかえす。
  それ以外はget_the_modified_time()をかえす。
*/

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);
    }
}

そして、以下のコードをsingle.phpの更新日を表示したい位置に貼り付けます。

<?php if ($mtime = get_mtime('Y/m/d')) echo '最終更新日: ', $mtime; ?>

Y/m/dの部分は、Y年n月j日でもOKです。最終更新日の部分は好きな文字でOKです。

当ブログでは以下のように記述しています。

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

こうすると以下のような日付表示になります。

予約投稿でも基本的には公開日だけが表示されるようです。これを導入する前に予約投稿していた記事や、公開日に更新した記事については、上図の予約投稿した場合のように、同じ日付が表示される形となります。

予約投稿している記事を公開日前に更新した場合も公開日と最終更新日が載るようです。色々な状況がありますので、試してみるのが早いと思います。

公開日:2011年4月9日
最終更新日:2014年2月18日

カテゴリー:WordPress関連記事

コメント

コメントは受け付けていません。

このページの先頭へ