【Twenty Ten】投稿日に追加して更新日の表示もする方法

TwentyTenでは、記事の投稿日を表示していますが、更新日の表示がないので記事を更新した場合、投稿日の横に更新日も載せるようにカスタマイズします。

TwentyTenのloop.phpを読んでみると、投稿日などの表示にはtwentyten_posted_on関数が呼び出されていたので、functions.phpのtwentyten_posted_on関数をカスタマイズして更新日を表示する事にします。

このカスタマイズにあたり、更新日が無い場合や予約投稿してある記事が、投稿される前に記事更新をした場合を考えて投稿日より前の日付の場合は、更新日を表示しないように別途関数を定義しました。

functions.phpの下のほうに以下に記述してあるのコード1があります。それのsprintfの部分をコード2のように変更します。
【変更前:コード1】

function twentyten_posted_on() {
・・・・・//省略
sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><span class="entry-date">%3$s</span></a>',
・・・・・//省略
}

【変更後:コード2】

function twentyten_posted_on() {
・・・・・//省略
sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><span class="entry-date">%3$s</span></a>' . get_date_hikaku(),
・・・・・//省略
}

そして、functions.phpの適当な場所(他のコードの邪魔にならず、わかりやすいように一番下に書くなど)に関数を定義します。これで投稿日の横に更新日が表示されます。

//投稿日と更新日の日付比較
function get_date_hikaku() {
  $date1 = get_the_time('Ymd');     //投稿日時
  $date2 = get_the_modified_time('Ymd');    //更新日時
  if($date1 < $date2) {
    return ' 更新日:'.get_the_modified_date();
  }
}

get_the_time()は投稿日(書いた日)で、get_the_modified_date()は更新日なので、Ymdで書式設定をして比較します。

*色々試しましたが、このコードで大丈夫だと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です