WordPress

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

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

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

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

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

今だけ!5大無料特典あり🎁

コーディングの時給アップにはこちら!


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
}
?>

以上になります。

 

コーディングの時給と作業効率を上げる!
2年間の実務で実際に使ったコードをまとめた『コーディング&WordPressメモまとめ集』をBrainで公開しています。
  • コピペで使えるWordPressの各テンプレート
  • 実務でよく使う見出し一覧
  • 実務でよく使うテキストのhoverアニメーション
  • 実務でよく使うボタン内の矢印9種類
  • Contact Form 7の色々・・・
などなど、他にもコピペで使えるコードがたくさん載せてあるので、時短=時給アップに繋がります。
さらに『コードのまとめ方が参考になった』というレビューも多数頂いているので、これを元に自分なりの"メモまとめ集"を作るという使い方も出来ます。
レビューは390件以上あるので、気になる方は以下のボタンからチェックしてみて下さい👇

今だけ!5大無料特典あり🎁

販売ページとレビューを見てみる


ブログランキング・にほんブログ村へ
  • この記事を書いた人

じゅんぺい

タイ・バンコク在住のWeb制作フリーランス兼ブロガー▶︎37歳からWeb制作を開始▶︎コーディングとWordPressのオリジナルテーマ制作でこれまで80件以上納品▶︎Web制作中心の当ブログは月間最高8.4万PV▶︎Twitterのフォロワーは6100人▶︎コーディングとWordPressのコンテンツを販売し、3日で500部突破&250万円&人気1位獲得 → 累計700部&420万円突破

-WordPress