記事の最終更新日を表示させる方法

sponsored link

最近は記事の公開日だけでなく、更新日を表示させているブログを時々見かけます。

記事の内容にもよりますが、サイトを訪れたユーザにとって、「その記事がいつ書かれたものなのか」という情報は大切です。

記事の公開日が古いと、その記事を更新していたとしても、閲覧者には「この情報は古いのかな」と思われてしまいます。

また、一度目を通したことのある訪問者にも、更新日が記載されていればその記事が修正されているということを伝えることができます。

方法は、function.phpに更新日を取得するコードを追加し、content.phpなどの、記事を出力するファイルにそれを実行するコードを書きます。

【参考にさせて頂いたサイト様】
WordPressで最終更新日を表示する方法

具体的なコードの追加

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

上記のコードをfunction.phpに追加します。

content.phpの修正

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

次に、更新日を表示させたい箇所に上記のコードを追加します。

この場合は以下のような表示になります。

公開日:2012年1月1日
最終更新日:2012年1月2日

更新が一度もない場合は公開日のみ、(更新日は表示されない)ようになっています。また、予約投稿をした場合は、公開日と更新日が同じ日付で表示されます。すばらしい☆(・ω・ノノ”☆

日本語が文字化けする場合

上記のコードを書いても、年月日などの日本語が文字化けすることがあります。

何ぜだ?テーマが悪いのか… と思って悩んだのですが、ファイルの保存形式が文字コードUTF-8でなければならないようです。

文字コード指定での再保存

テラパッドなどの、普段プログラムコードの編集に使っているエディタならば文字コード指定でファイルの保存ができると思います。

例えばテラパッドなら、【ファイル】⇒【文字改行コード指定保存】⇒UTF-8を選択してファイルを保存。それをもう一度アップロードすれば日本語が化けずに表示されます。

めんどうな場合は、Last-Modified:2012/01/01など、日本語は使わずに表現すれば問題ありません。

というよりも、通常はUTF-8で保存するのが基本のようです。(いつもデフォルトのままなんですが知りませんでした。)

Twenty Twelveでのカスタマイズ

修正するファイルはcontent.phpです。

どうしたいかによって色々方法があります。デフォルトでは 「カテゴリー: 〇〇 | 投稿日: 2012年1月01日 | 」のような表示が記事の下部に出ます。

複数ユーザを作成して記事の投稿をしている場合は投稿者情報も表示されます。

単純に公開日の横に更新日を表示させたければ、footer class=”entry-meta”の下にあるメタ情報を出力させるコードの横に更新日を出力させれば、「投稿日:2011年1月1日 | 最終更新日:2012年1月2日」のように表示できます。

メタ情報の出力箇所

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

公開日・更新日を記事上部に表示させるなど、デフォルトの表示方法を活かさずに表示させたい場合はメタ情報を取得するentry_meta()自体をコメントアウトして無効にします。

投稿者情報だけを非表示にしてentry_meta()は使いたい場合は、function.phpを修正する必要があり、手順は少し複雑になります。

カテゴリやタグ情報は簡単に取得できるので、自分で作り直してしまう手もあります。

sponsored link

コメントを残す

メールアドレスが公開されることはありません。