ブログの公開日の表示を〇〇年〇月〇日の表示から、〇時間前、〇日前の表示に変更したいと思う事はありませんか?
今回は、3日前までの投稿までは〇時間、〇日前の表記にして、それ以前の記事は〇〇年〇月〇日という表記にしてみました。

実装方法

「single.php」や「index.php」、「archives.php」等の日付を表示させてる箇所を下記のように書き換えます。

<?php if(get_theme_mod('post_date',true)): ?>
<time datetime="<?php echo (get_theme_mod('post_sort','published')=='published')?the_time('Y-m-d'):the_modified_date('Y-m-d'); ?>" class="post-date">
<?php 
    if(date('U') - get_the_time('U') < 60*60*72){
        echo human_time_diff( get_the_time('U'), current_time('timestamp') ) . '前';
    }else{
        echo(get_theme_mod('post_sort','published')=='published')?get_the_date():the_modified_date('Y年m月d日');
    } 
?>
</time>
<?php endif; ?>

表記変更タイミングの指定方法

下記のif文で公開後の時間を判定して、表記を変更しています。
60(秒)*60(分)*72(時間)で3日間と指定しているため、ここの数値を変更する事で、指定時間を変更出来ます。

if(date('U') - get_the_time('U') < 60*60*72)
ぺんぎん
全部を〇時間前みたいな表記にした時の表記はそれぞれどうなるの?
わぷまる
基本的にはこのように表示されるよ


分 :1時間未満の場合
時間:1時間以上24時間未満の場合
日 :24時間以上7日未満の場合
週間:7日以上30日未満の場合
か月:30日以上365日未満の場合
年 :365日以上の場合

human_time_diff関数は、時間を相対的に表示させる為の関数ですが、phpを使って表記を変更する事が出来るため、WordPressのバージョンや、テーマの仕様によって上記の表記と異なる場合があります。

コメントを残す
コメントを残す