【プラグイン不要】新着記事に任意の期間「NEW」マークを自動付与する方法とカスタマイズ事例

※phpファイルを編集する際は、必ずバックアップを取ってから作業を開始して下さい。

こんな方におすすめ、ぜひ参考にしてみて下さい。

  • WordPress でサイト運営をしている
  • 一目で新着記事とわかるようにしたい
  • 記事 UP 時に「NEW」マークが自動で表示されるようにしたい
  • 任意の期間だけ表示させたあとは自動で消えるようにしたい

目次

「NEW」マークを表示するためのコード

「NEW」マークを表示させたい箇所に下記のコードを追加します。
記事一覧であれば index.php や archive.php、記事内であれば single.php といった感じになりますが、使っているテーマにより異なりますので phpファイルをご確認下さい。

<?php
    $days = 3;
    $now = date_i18n('U');
    $entry = get_the_time('U');
    $term = date('U',($now - $entry)) / 86400;
    if( $days > $term ) {
        echo '<span class="new">NEW</span>';
    }
?>

基本はこれだけで OK!
$days = 3;の数だけ表示されるので、上記のコードでは「記事公開から 3日間表示される」ようになります。
一週間表示させたい場合は$days = 7;として下さい。

上記のコードを追加した phpファイルをアップロードして「NEW」と表示されれば完成です。

「NEW」マークのカスタマイズ方法

前述のコードを追加するだけで 「NEW」が表示されるようになりますが、ここからはカスタマイズ方法と併せて紹介します。
お使いのテーマに合わせてお試し下さい。

記事のタイトル横に並べて表示する

マークの表示位置:記事タイトル右側
マークの表示期間:7日間

▼ 完成イメージ
【プラグイン不要】新着記事に任意の期間「NEW」マークを自動付与する方法とカスタマイズ事例

▼ index.php や archive.php などに追加

<h1><?php the_title(); ?><?php
    $days = 7;  // マークを表示する日数
    $now = date_i18n('U');
    $entry = get_the_time('U');
    $term = date('U',($now - $entry)) / 86400;
    if( $days > $term ) {
        echo '<span class="newMark">NEW</span>';
    }
?></h1>

<?php the_title(); ?>がタイトルのテンプレートタグになるので、この後ろにコードを追加します。

▼ style.css に追加

span.newMark {
    color: #ffffff; // フォント色
    font-size: 10px; // フォントサイズ
    background: #f35b69; // 背景色
    position: relative;
    top: -2px;
    display: inline-block;
    margin-left: 8px;
    padding: 2px 5px;
}

アイキャッチ画像に重ねて表示する

マークの表示位置:アイキャッチ画像の右上に重ねて表示
マークの表示期間:7日間

▼ 完成イメージ
【プラグイン不要】新着記事に任意の期間「NEW」マークを自動付与する方法とカスタマイズ事例

▼ index.php や archive.php などに追加

<ul class="archive">
    <li>
        <a href="<?php the_permalink() ?>">
            <?php
                $days = 7;  // マークを表示する日数
                $now = date_i18n('U');  // 今の時間
                $entry = get_the_time('U');  // 投稿日の時間
                $term = date('U',($now - $entry)) / 86400;
                if( $days > $term ){
                    echo '<span class="newMark">NEW</span>';
                }
            ?>
            <figure>
                <?php if (has_post_thumbnail()) { the_post_thumbnail(); } ?>
            </figure>
            <h1 class="title"><?php the_title(); ?></h1>
        </a>
    </li>
</ul>

▼ style.css に追加

ul.archive li {
    position: relative;
}
span.newMark {
    color: #ffffff; // フォント色
    font-size: 12px; // フォントサイズ
    background: #f35b69; // 背景色
    position: absolute;
    top: 0;
    right: 0;
    margin: 0;
    padding: 5px 8px;
    z-index: 1;
}

左上に表示したいときはright: 0;を削除して、left: 0;を追加して下さい。