【WordPress】最終更新日から一定期間経過している投稿に「古い情報」であることを自動で表示するコード

WordPressで記事を書き続けていると、仕方ないこととはいえ、更新せずにそのままになっている投稿があると思います。ただ日記などでは逆に更新してしまうと当時の出来事でなくなってしまうことからあえて更新はしないという方もいると思います。

いずれにしても、いくらページの先頭に公開日や更新日を表示していても、そのページを見る人にとっては「いつ書いたものか」というのをどうしても見落としがちになってしまい、一歩間違うと今は使えない古い情報にアクセスしてしまう方もいるかもしれません。

ただ、作り手にとっては過去の記事なのですからいつまでも振り返って更新する訳にもいかないという事情は閲覧者には伝わりにくいため、訪問した人の捉え方によっては「だまされた」とか「嘘を書いてるサイトだ」などと揶揄されることもあるかもしれません。

これから紹介するコードは、こうしたトラブルを避けるための手法として、
最終更新日から一定期間経過した投稿へアクセスしたときに「古い情報かもしれない」
ことを自動で表示するためのものです。これによってすべての問題がクリアされるわけではありませんが、より親切なサイトを作るためには必要なことだと思います。

また、手動でこの表示を入れる方法をとるとどうしても投稿を更新することになり、ますます古いものなのか新しいものなのか分からなくなってしまいますから、自動で入るようにしておくことが必要です。

このコードは固定ページでも自動表示可能ですが、固定ページは元来何かの一覧を表示したり、あまり変更のないコンテンツを作る際に使うものですから適用すると全部の固定ページが「古い」ということになってしまいかねませんので、必要でなければ投稿のみに使うようにするといいと思います。

スポンサーリンク

情報が古いかもしれないことを自動表示するコード

<?php
	if( get_the_modified_date('Y') <= date('Y') - 1 ) { ?>
	<div class="old-post-message">
		<p ><?php the_modified_date('Y年n月j日'); ?>に更新された情報です。内容が古い可能性がありますのでご注意ください。</p>
	</div>
<?php } ?>

コードの解説

if( ①get_the_modified_date(②’Y’) <= date(②'Y') - ③1 )

  • ①で最終更新日からどれだけ過ぎているかを計算(get_the_publish_dateにすれば公開日)
  • ※一度投稿を公開したら2度と更新しないようなサイトであれば「公開日」でいいと思うのですが、何度も書き直すコンテンツが多い場合には更新日にしておかないと、せっかく更新しているのに「古い情報・・・」と表示されてしまうことになります。

    ※更新日基準で古い投稿にメッセージをつけるプラグインは自身がプラグイン検索してテスト導入し、コードを見る限りではありませんでした(全て公開日基準でした)

  • ②で年単位であることを指定(Mにすれば月になります)
  • ③で○年の○の部分を指定(1なら1年、2なら2年)

「に更新された情報です。内容が古い可能性がありますのでご注意ください。」の部分は気に入った文言に変更すればOK

div classが”old-post-message”に指定してありますので、CSSなどでこのセレクタに対してデザイン指定ができます

もちろんpタグの間にfont colorなどのタグを使えば文字色の変更などができます

コードを表示する場所と注意点

コードを表示する場所はタイトル下のなるべく本文先頭に近い場所がいいと思います。

テーマによってしまいますが、タイトル下にウィジェットが使えるようでしたらテキストウィジェットにコードを挿入すれば表示されるようになります。

テーマの単一投稿のテンプレート(通常はsingle.php)の任意の場所へコードを挿入しても表示可能です。固定ページにも適用する場合には固定ページのテンプレート(通常はpage.php)や固定ページ用のカスタムテンプレート、カスタム投稿タイプに適用するにはカスタム投稿タイプ用に作成したテンプレートへ挿入することで適用できます。

1つ注意点としては、コードにより古い投稿であることが挿入された場合にソースがどうなっているかを必ず確認してほしいということです。テーマによっては自動的にページの説明(description)を本文の先頭から抽出するものもあり、この文言が足されることで検索エンジンの評価が変わってしまう可能性があるからです。この設定については使っているSEO関連のプラグインやテーマとの兼ね合いになりますから自身で調整するしかありません。

ウィジェットを利用してコードを挿入する場合、PHPコードはWordpressの標準機能のままだと投稿やウィジェットでは使えないので、「EXEC PHP」などのプラグインを使ってPHPファイルが実行されるようにする必要があります。

本文先頭にコードや固定文を表示する方法がテーマになく、テンプレートを触るのは不慣れという方は「add post url」プラグインを使えば知識なしで本文の先頭や末尾に定型文やコードを表示できるようになります。

併せて使いたいテクニック

古い投稿やコンテンツで言葉使いの修正や画像の変更、追記したいことなどがある場合、古い情報のままで修正をしたくても更新日が付加されてしまい、この機能が働かなくなったり更新された新しい情報だと閲覧する方に認識されてしまうことを避けるため、以下のように「更新日」を更新しないコンテンツの更新方法(ちょっとややこしい書き方になってしまいました・・・)を参考にしてみるといいと思います。

【Wordpress】「更新日」を変更しないで投稿や固定ページ、カスタム投稿タイプの更新を行う方法
Wordpressでは、コンテンツを作成したときや過去のコンテンツを修正するとき、「更新日」という項目が今の日時に変更され、いつ更新されたかが分かるようになっています。古いコンテンツでも更新されていることが解るので必要かつ便利な機能なのですが、更新されてしまうと都合の悪いことありませんか?更新日を更新しない方法を紹介します。
役に立つ情報でしたらぜひSNSでシェアしてください
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
ページ先頭へ