
WordPressの新着記事に何件かNEWマークを付けたいけど出来る?
例えば以下のようなケースが考えられます。
- 記事を公開してから1週間だけ『NEW』マークを付けたい
- 最新記事3件だけ『NEW』マークを付けたい
- 記事を公開してから1週間以内の最新記事3件だけ『NEW』マークを付けたい
今回はこれらをコピペで出来るように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の色々・・・
などなど、他にもコピペで使えるコードがたくさん載せてあるので、時短=時給アップに繋がります。
さらに『コードのまとめ方が参考になった』というレビューも多数頂いているので、これを元に自分なりの"メモまとめ集"を作るという使い方も出来ます。
1100部以上販売し、レビューは570件以上あるので、気になる方は以下のボタンからチェックしてみて下さい👇
今だけ!5大無料特典あり🎁