ウェブマスターがウェブのことを書いたら

ウェブマスターとして働いている管理人がウェブで躓いたこと、ググったことを備忘録として書いています。主に技術的なこと、WEBサイト設計のこと

WPで最終更新日のみを表示する方法~なければ公開日のみ:予約投稿にも対応

      2023/09/17

 - WordPress

WordPressでsingle.phpに表示する日付について、更新があれば最終更新日のみを表示する方法の備忘録です。更新日がなければ公開日のみを表示。

■更新日がない場合(公開日のみ)

2018年3月20日

■更新日がある場合(更新日のみ)

2018年3月26日更新

functions.phpに追記する内容

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

こちらの内容は、
・記事公開した場合、公開日を表示
・予約投稿した場合、公開日を表示
(予約投稿で、公開日よりも更新日の方が先になってしまうのを防ぐ)
・記事を更新した場合、最終更新日を表示

single.phpに記述する内容

<span class="post-data"><?php
  if ($mtime = get_mtime('Y年n月j日')) echo $mtime ,'更新';
  else {
  the_time('Y年n月j日');
  }
?></span>

↓年月日のフォーマットを変えたい場合はこちら記事が参考になります。
https://tetrachroma.co.jp/blog/130912_the_time/

参考に:公開日と更新日を両方表示させたい場合

2018年3月20日 2018年3月26日更新

single.phpに記述する内容(functions.phpは上記と同じ)

<span class="post-data"><?php the_time(get_option( 'date_format')); //the_time('Y年m月d日') ?></span>
<span class="post-update"><?php if ($mtime = get_mtime('Y年n月j日')) echo $mtime ,'更新' ; ?></span>

参考にさせて頂いたページ

ありがとうございます。