WordPress

【コピペOK!】WordPressの新着記事にNEWマークを表示させる方法【件数・期間を指定】

※ 当サイトではアフィリエイト広告を利用しています

WordPressの新着記事に何件かNEWマークを付けたいけど出来る?

例えば以下のようなケースが考えられます。

  • 記事を公開してから1週間だけ『NEW』マークを付けたい
  • 最新記事3件だけ『NEW』マークを付けたい
  • 記事を公開してから1週間以内の最新記事3件だけ『NEW』マークを付けたい

今回はこれらをコピペで出来るように5つのケースに合わせてコードをご紹介しています。

 

完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
  • 30日間でWeb制作を学べる
  • 完全無料
  • 現役エンジニアへの質問無制限
  • オンラインの動画学習なので時間場所を問わず勉強可能
  • 最大4回の学習サポート面談
  • 受付は1日25名までの先着制
無料なのに専属のメンターが付き、現役エンジニアへの質問も無制限という破格のサービスです。
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇

\ 完全無料 /

ZeroPlus Gate公式サイト

先着1日25名まで!

WordPressの新着記事にNEWマークを表示させる方法【件数・期間を指定】

今回ご紹介するのは以下の5種類になります。

  • 件数で指定する方法(通常投稿)
  • 件数で指定する方法(カスタム投稿)
  • 期間で指定する方法(日数か時間)
  • 件数と期間で指定する方法(通常投稿)
  • 件数と期間で指定する方法(カスタム投稿)

今回の設定はこちらです。

  • 期間:7日間
  • 件数:3件
  • 件数と期間:3件かつ7日間
  • カスタム投稿タイプスラッグ:news(カスタム投稿の場合)

カスタム投稿タイプスラッグですが、これはプラグイン『Custom Post Type UI』を使った場合『CPT UI → 投稿タイプの追加と編集 → 投稿タイプを編集 → 投稿タイプを選択 → 投稿タイプスラッグ』で確認できます。

カスタム投稿タイプスラッグの確認

カスタム投稿タイプスラッグの確認

今回ご紹介するコードを書く場所は記事のループ内の表示させたい箇所になります。

また今回出力されるHTMLは全てこちらにします。

<span class="new">NEW</span>

 

件数で指定する方法(通常投稿)

<!-- 件数で指定(通常投稿) -->
<?php
  $last_post_ids = array();
  $lastposts = get_posts('posts_per_page=3'); // NEWを付ける最新記事の件数
  foreach($lastposts as $lastpost) {
    $last_post_ids[] = $lastpost->ID;
  }
?>
<?php if ( in_array( $post->ID, $last_post_ids ) ) : ?>
<span class="new">NEW</span>
<?php endif; ?>

 

件数で指定する方法(カスタム投稿)

<!-- 件数で指定(カスタム投稿) -->
<?php
  $last_post_ids = array();
  $lastposts = get_posts('post_type=news&posts_per_page=3'); // 『news』はカスタム投稿タイプスラッグ
  foreach($lastposts as $lastpost) {
    $last_post_ids[] = $lastpost->ID;
  }
?>
<?php if ( in_array( $post->ID, $last_post_ids ) ) : ?>
<span class="new">NEW</span>
<?php endif; ?>

 

期間を指定する方法(日数か時間)

<?php
  $days = 7;  // NEWを付ける最新記事の期間(日数)
  $today = date_i18n('U');  // 現在の時間
  $entry = get_the_time('U');  // 投稿日の時間
  $term = date('U',($today - $entry)) / 86400;
  if( $days > $term ){
    echo '<span class="new">NEW</span>';
  }
?>

上記は『日数』で指定する方法ですが、5行目の『86400』を『3600』にすると『時間』で指定となります。

上記で『86400』を『3600』にした場合は『7時間』となります。

 

件数と期間で指定する方法(通常投稿)

<!-- 件数&期間(通常投稿) -->
<?php
  $last_post_ids = array();
  $lastposts = get_posts('posts_per_page=3'); // NEWを付ける最新記事の件数
  foreach($lastposts as $lastpost) {
    $last_post_ids[] = $lastpost->ID;
  }
?>
<?php
  $days = 7; // NEWを付ける最新記事の期間(日数)
  $today = date_i18n('U');
  $entry = get_the_time('U');
  $term = date('U',($today - $entry)) / 86400 ;
  if( $days > $term ){
?>
<?php if ( in_array( $post->ID, $last_post_ids ) ) : ?>
<span class="new">NEW</span>
<?php endif; ?>
<?php
}
?>

 

件数と期間で指定する方法(カスタム投稿)

<!-- 件数&期間(カスタム投稿) -->
<?php
  $last_post_ids = array();
  $lastposts = get_posts('post_type=news&posts_per_page=3'); // 『news』はカスタム投稿タイプスラッグ
  foreach($lastposts as $lastpost) {
    $last_post_ids[] = $lastpost->ID;
  }
?>
<?php
  $days = 7; // NEWマークを表示する期間(日数)
  $today = date_i18n('U');
  $entry = get_the_time('U');
  $term = date('U',($today - $entry)) / 86400 ;
  if( $days > $term ){
?>
<?php if ( in_array( $post->ID, $last_post_ids ) ) : ?>
<span class="new">NEW</span>
<?php endif; ?>
<?php
}
?>

以上になります。

この記事が役に立ったと思ったら、シェアボタンからX(旧Twitter)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!
Web制作おすすめ教材と案件獲得サービス
当ブログではWeb制作学習におすすめの教材を厳選してご紹介しています。
こちらの記事を参考に教材を購入して成果を出している人もたくさんいるので、自分に必要な教材を探してみて下さい。
また、学習面だけでなく営業面である案件獲得サービスもご紹介しています。
スキルが身についても仕事がなければ意味がないので、営業に不安がある人はこちらの記事をぜひ参考にしてみて下さい。
この記事を参考にスキルと営業力を身につけて稼げるようになりましょう!

-WordPress