この記事は公開されてから2年経過しています。現在とは内容が異なる場合がありますのでご注意ください。
最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。
最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。
サイト運営していると記事がたまってきますが、中には執筆時には最新の情報でも時の経過とともに情報が古くなってしまった、とかありますよね。サイトに来てくれる訪問ユーザーがその内容を見て試してもらったとしても情報が古くなっていて役に立たなかったとかなんか申し訳ない気持ちになりませんか?
そこで、訪問ユーザーが古い情報を惑わされないように、古い記事にメッセージや注意書きを表示させる方法を紹介します。
「WordPress 古い記事 メッセージ表示」とかでググってもらうと参考記事はたくさん出てきますが、ちょっと違った方法での表示を紹介します。
※この方法はPHPのDateTimeというクラスを利用しますが、標準で含まれているので追加設定などは必要ありません。なお、PHP5.3以上が対象となります。
メッセージを表示したい箇所に次のPHPコードを埋め込みます。
1 2 3 4 5 6 7 8 9 10 |
<?php $threshold = 365; // メッセージを表示する経過日数 $modified_date = new DateTime(get_the_modified_date('Y-m-d 00:00:00')); $now = new DateTime(date('Y-m-d 00:00:00')); $elapsed = $modified_date->diff($now)->days; if ($elapsed > $threshold) { get_template_part('templates-content', 'modified_alert'); } ?> |
get_template_part()
で読み込むテンプレートファイルを作成します。
ファイル名: templates-content-modified_alert.php
でテーマディレクトリの中に作成します。
1 2 3 4 5 6 |
<div class="modified_alert"> この記事は公開されてから<span class="modified_elapsed"><?php echo human_time_diff(get_the_modified_date('U')); ?></span>経過しています。現在とは内容が異なる場合がありますのでご注意ください。 最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。 <?php get_search_form(); ?> </div> |
あとは、スタイルシートでいい感じに調整してください。
他の方法と違うところ
- DateTimeクラスを利用して「日数単位」で計算する.
- メッセージの挿入に
get_template_part()
を利用する. - メッセージの中に検索フォームを表示する.