メニュー

【WordPress】○日以内に公開した記事はNEWを表示する方法

ループ内で「get_the_time」を使用し、投稿のタイムスタンプを取得。

<?php 
$args = array(
'post_type' => 'post'
);
$posts = get_posts($args);

if ($posts) :
?>

<ul>

    <?php foreach($posts as $post) : setup_postdata($post);

    // NEWタグ
    $new_day = 5;
    $load_day = date_i18n('U');
    $post_day = get_the_time('U');
    $dif = date('U',($load_day - $post_day)) / 86400;

    ?>
    <li>
        <a href="<?php the_permalink(); ?>">
            <div class="hoge_img">
                <?php if ( $new_day > $dif ) { ?><i>NEW</i><?php }; ?>

                <?php if ( has_post_thumbnail()) : ?>
                <?php the_post_thumbnail(); ?>
                <?php else : ?>
                <img src="<?php echo esc_url(get_template_directory_uri()); ?>/hoge_no_image.png" alt="NO IMAGE">
                <?php endif; ?>
            </div>

            <time datetime="<?php echo esc_attr(get_the_modified_time('c')); ?>">
                <?php echo esc_html(get_the_time('Y.m.d')); ?>
            </time>

            <h2><?php the_title(); ?><h2>

            <div class="desc">
                <?php the_content(); ?>
            </div>
        </a>
    </li>

<?php
endforeach;
wp_reset_postdata();
?>
</ul>

<?php endif; ?>

「date_i18n」で取得しているのは現在のタイムスタンプ。5日以内の記事投稿で、NEWというタグを入れるかどうかを判定している。