SIM
お知らせ一覧や記事一覧の最新記事に「NEW」マークを付ける方法を紹介します。
目次
PHP記述例
NEWマークをつけるコードはいくつかありますが、代表的なものを一つ紹介します。
下記PHPの記述例は「10日以内に投稿した記事(お知らせ)」にNEWマークを表示させるコードです。このコードをお知らせ一覧のループ構造の任意の場所に配置した上でCSSを書けば実装完了です。
<?php
//UNIXタイムスタンプ=「1970年1月1日00時00分00秒」から「記事」投稿時刻までの経過秒数
$post_sec = get_the_time('U');
//NEWマークつける日数(何日前までの投稿にNEWをつけるか?)
$new_days = 10;
//「time()」=現在時刻までの経過秒数(UNIXタイムスタンプ換算)を取得|($new_days * 24 * 60 * 60)=NEWマークを付ける日数を秒数に換算
$elapsed_sec = time() - ($new_days * 24 * 60 * 60);
// 10日以内の投稿ならNEWを表示
if ($post_sec > $elapsed_sec) {
echo '<div class="new_info">NEW</div>';
}
?>
コードの補足説明
- NEWの日数指定:5行目の$new_daysの数字を置き換えて下さい。上の例では10以内の投稿にNEWをつけるため、10に設定してあります。
- UNIXタイムスタンプ:「1970年1月1日00時00分00秒」から「記事」投稿時刻までの経過秒数のことです。上のコードでは「get_the_time(‘U’);」と「time()」がUNIXタイムスタンプ換算の関数です。
- get_the_time(‘U’);:記事の投稿時刻までの経過秒数(UNIXタイムスタンプ換算)
- time():現在の時刻までの経過秒数(UNIXタイムスタンプ換算)
- NEWの指定日数か否かの判断:「投稿日まで秒数」>「現在時刻までの秒数ー指定日数」が成立するならNEWを付けると計算します。
- 投稿日まで秒数:$post_sec = get_the_time(‘U’);
- 現在時刻までの秒数ー指定日数(秒換算):$elapsed_sec = time() – ($new_days * 24 * 60 * 60);
- 関数名:$〇〇といった関数名は、他の分かりやすい半角英数字の文字列に置き換え可能です。
捕捉
この記事では投稿から〇〇日以内の記事にNEWを付けるコードを紹介しましたが、例えば、最新記事10個分にNEWを付けることもできます。しかし、更新があまり無いWEBサイトで記事が古いのにNEWマークが付いていると読者も違和感を感じます。そういう理由から、この記事ではあえて紹介していません。
関連記事
【WordPress】お知らせ一覧をトップページに作る方法【オリジナルテーマ】
この記事では、トップページにもお知らせ一覧の一部を載せる方法を紹介します。 完成イメージ 完成イメージを下の図にお示しします。つまり、コーポレートサイトで良く...
【WordPress】お知らせ一覧にカテゴリーを表示する方法【オリジナルテーマ】
WordPressのお知らせ一覧にカテゴリー名を表示させ、CSSで装飾を変更する方法を紹介します。 完成イメージ 完成イメージは下記のとおりで、各お知らせに対してカテゴリ...
【WordPress】投稿アーカイブページを表示させるためのfunctions.php設定
投稿アーカイブ(一覧)ページはfunctions.phpに設定を記述しないと表示されません。この記事ではその方法を紹介します。 functions.phpの記述例 投稿アーカイブページ...
【WordPress】投稿アーカイブのページネーションの作り方
投稿アーカイブページのページネーションの作り方を紹介します。 完成イメージ WordPressでは投稿アーカイブページのページネーション用のコードが最初から用意されてい...