最終更新日の取得、1年以上経過した記事に古い旨を知らせる記述 WordPress

公開:2016-04-23 / WordPress 制作・開発 / , , , ,
更新:2017-02-07

Webサービスやアプリの開発者は、実装で困ったときには検索エンジンなど利用し、どこぞの技術者のブログで解決案を探すことも多いと思います。

 

難易度が高い内容ほどなかなか見つからず、見つかった記事を読み終え、記事の公開日を確認すると5年前、、、なんてことありませんでしょうか。

 

Web業界は進歩が早いので、流行りの技術で書いているソースもも2,3年もすれば古くなってしまいます。

 

ただ、そんな昔の記事でも最新の情報を追加すれば、まだまだ現役で通じる記事になったりするので、公開後に加筆されていることも多いです。

(このブログは公開して1年ちょっとですが、日々更新しています。といっても誤字脱字の修正が多いですが、、、気をつけます)

 

ところが、せっかく更新した記事でも公開日だけしか表示されていないと「古い記事だ」と判断され、早期離脱の原因となります。

 

この早期離脱は、読み進んで満足した結果にサイト内の他の記事を呼んだり、SNSでの拡散のチャンスを失ってしまいます。

 

それはもったいないので、本日はWordPressで最終更新日を表示させる方法について紹介します。

 

WordPressで最終更新日を表示させる

まず、ゴールイメージを確認しましょう。

このサイトでも実装してますが、以下の画面キャプチャのとおりです。

WordPressの最終更新日

 

実装はすごく簡単です。

単純に以下のソースをテーマファイルの表示させたい箇所に記述すればOKです。

<?php the_modified_date('Y-m-d') ?>

 

おそらく、公開日の近くに最終更新日を表示させると思いますが、公開のタイミングでは公開日と最終更新日が同じ日付になってしまいます。

 

これを解消する場合は以下の2つがあります。

  • 公開日を表示させずに、更新日のみとする
  • 更新日は、公開日と日付が異なる場合のみ表示する

 

後者の方は、以下のように記述すればOKです。

<?php
    if (get_the_modified_date('Y-m-d') != get_the_time('Y-m-d')) {
        print "更新日: ".get_the_modified_date('Y-m-d');
    }
?>

 

予約投稿した記事の更新日

先に紹介したソースでは問題があります。

 

実は、未来の日付で予約投稿をすると、公開日が最終更新日の前になってしまうのです。

 

WordPress的には正しい処理をしているのですが、閲覧するユーザにとっては「公開する前に更新ってどういうこと?」となります。

 

そこで読むのを辞める人はいないと思いますが、いらぬ詮索は避けたほうが良いので、解決させておきましょう。

 

予約投稿で、最終更新日が公開日より過去の場合、最終更新日を公開日と同じ日付にすることで解決できます。

<?php
    $update_time = get_the_modified_time('Ymd');
    $release_time = get_the_time('Ymd');
    if ($release_time >= $update_time) {
        print "公開: ".get_the_time('Y-m-d');
        print "更新: ".get_the_time('Y-m-d'); //もしくは削除
    } else {
        print "公開: ".get_the_time('Y-m-d');
        print "更新: ".get_the_modified_time('Y-m-d');
    }
?>

 

公開日と最終更新日が同じの場合は表示させたくない場合は、コメントアウトの行を削除すればOKです。

 

一定期間経過したブログ

最近では一定期間経過したブログには「この記事は○年以上前に公開されたものです〜」という案内を出すところもあります。

 

必要そうな記事かどうか判断できるので、ユーザにとっては有益な情報となります。

(せっかく目当ての記事が見つかっても、読み進めて「えー、古いじゃん」となればユーザが不満を抱くのは容易に想像できるかと思います)

 

仮に1 年以上経過した記事に表示させる場合は、現在の日付から最終更新日が以下のとおりです。

<?PHP
    $update_time = get_the_modified_time('Ymd');
    $past_time = date("Ymd",strtotime("-1 year"));
    if ($update_time < $past_time) {
        print "この記事は1年以上前の記事のため、内容が古い可能性があります。";
    }
?>

 

最後に

最近のWebサービスは、UX/UIといったユーザ体験を意識した作りが随分と浸透してきていると思います。

 

ところが、課題の解決を目的として訪れるようなブログ(技術紹介・ライフハック、など)はユーザの「知りたい」というニーズが強いので、多少不親切でもユーザは我慢ないしは妥協をしてサイトを利用してくれると思います。

 

今日紹介した機能は、読み手に「この記事は古いよ」って伝えるだけですが、最近はブログでもUXを意識したものも存在するので、記事の内容以外にもこういった配慮がなされていないと離脱の要因になるかもしれません。

 

せっかく発信した記事が読まれないのは不本意かと思うので、読んでくれる人の顔を思い浮かべながらサイトを見なおしてみようかと思う今日この頃です。

 

Author:yukio iizuka
プロフィール画像
フリーランスとしてUX視点で業務支援しています。 HCD-Net認定 人間中心設計専門家 LEGO®︎ SERIOUS PLAY®︎ メソッドと教材活用トレーニング修了認定ファシリテーター Hi-Standard好きです。
http://yukioiizuka.com
mislead
MISLEADの記事に共感いただけましたら
いいねをお願いします。

コメント一覧

コメントはありません

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください



       

© yukio iizuka All Rights Reserved...