WordPressの記事の更新日を表示する
WordPressのオリジナルテーマを作っていて、記事の更新日を追加したくなりました。そんな時に記事の更新日を追加する方法を調べたのでご紹介します。
WordPressの記事の更新日の追加方法
WordPressで記事に更新日を追加する際に、ポイントとなってくるのは記事の公開日です。
なぜポイントになってくるかと言うと、記事の更新日は常に表示されて欲しいわけではないので記事の公開日と比較して更新日が新しい時だけに表示するといった工夫が必要だからです。
記事の更新日を表示するテンプレートタグ
まずは、とにもかくにも記事の更新日を表示しましょう。
記事の更新日を表示するのは、投稿テンプレートだと思うので「single.php」に修正を加えます。
記事を表示するには下記のテンプレートタグを使います。
<?php
echo get_the_modified_date();
?>
で、このテンプレートタグを使ってどのように記事の更新日を表示するかと言うと…
<?php
echo '' . get_the_modified_date('Y.m.d') . '
';
?>
たったこれだけです。
「get_the_modified_date()」のカッコ内にdate関数(PHPマニュアル)で、表示したい日付の形式を指定します。
今回のコードではこのようになります。
<?php
// 記事の更新日を表示する
echo '' . get_the_modified_date('Y.m.d') . '
';
?>
// コードの実行結果
2017.11.14
これで記事の更新日の取得が出来たので、次は記事の「公開日」と「更新日」を比較して未来の時だけ表示する方法です。
記事の「公開日」と「更新日」を比較して更新日が未来の時だけ表示する
先ほどのコードだけだと問答無用で記事の更新日が表示されてしまいます。
そこで、公開日と更新日を比較して更新日が未来の時だけ表示します。一番簡単なのは単純に比較して一致しない時に更新日を表示する方法です。
ちなみに記事の公開日を取得するテンプレートタグはこちらです。
<?php
echo get_the_time();
?>
記事の公開日と更新日が一致しない時に更新日を表示する
これで、公開日と更新日が一致しない時に更新日が表示されます。
<?php
// 公開日と更新日が一致しない時に更新日を表示
if(get_the_time('Y.m.d') != get_the_modified_date('Y.m.d')){
echo '' . get_the_modified_date('Y.m.d') . '
';
}
?>
これだと簡単なんですがデメリットがあって「年・月・日」での比較になるので、記事の公開日の当日は比較してもイコールになるので更新日が表示されません。
当日中の更新日が表示されなくて問題ない、って方はこのコードでOKです。コピーして、コードの挿入場所やCSSをいじって使ってください!
記事の公開日と更新日の時間を比較して更新日を表示する
当日中でも更新日を表示したい場合は、先ほどのコードを少しいじってこのようにします。
<?php
// 公開日と更新日がの時刻まで比較して一致しない時に更新日を表示
if(get_the_time('Y.m.d.G') != get_the_modified_date('Y.m.d.G')){
echo '' . get_the_modified_date('Y.m.d') . '
';
}
?>
なにが変わったかと言うと「Y.m.d」が「Y.m.d.G」になり、時刻までを比較するようになりました。この大文字の「G」がついているとどう変わるかと言うと、比較されるものが「年・月・日・時」になって、当日の同時間中は更新日が表示されません。
記事の公開後に記事をちょこっと直す機会が多い方は、これがオススメです。オリジナルテーマを使っていて更新日を表示したくなった方は、ぜひお試しください!
このブログにも記事の更新日を追加したので、更新されてる記事を探してみてくださいね(笑)
コメントはこちらから