今回は、「NEWS」の部分に「NEW!!」を表示したい!という願いを実現させます。

もう少し具体的には以下の通り。
・wordpressで
・NEWSやTOPICSのカテゴリの最新記事から日付情報を取得し
・その日付情報をもとに、1週間以内の投稿がある場合は
・メニューの【NEWS】や【TOPICS】の部分に「NEW!!」マークを表示させる

ということを実現したい!!

WordPressの特定カテゴリの情報を引っ張ってくる

WordPressで特定カテゴリの最新記事を1件だけ表示する

NEW!!マークを表示する!

以下、mysql壊れてるんかな、h外してお送りします。
しかし経験に基づいた非常に洗練された記事!

WordPressでNew!を表示するパターン別4つの方法
ttp://wp3.jp/2011/12/25/wordpress-new/

 

上記の2つの記事を元に…

◯ わからなかったこと>

・$data=get_post()で取得した配列$dataからのデータの取り出し方
→echo data[0][‘ID’]でうまくいかない
→print?r($data)では格納されたデータを全て表示可能

◯→わかるようになったこと>
配列からは以下のようにデータを取り出せる。
$examplePost = get_post();
echo $examplePost->ID; // 投稿 ID を出力

 

今回の例では、
echo apply_filters( ‘the_content’, $data[0]->post_title ); // 良い例

でタイトルを取得!

 

 

というわけで。

これで、あるカテゴリから投稿を取得して、メニュー部分に「NEW!」をつけられた

1.まず、投稿タイプ「ポスト」から、1件、カテゴリ1(NEWS)の投稿を取得し、$dataに格納。
$data = get_posts(‘post_type=post&showposts=1&category=1’);

2.この$dataから投稿IDを取得し、$entryに格納。
$entry = get_the_time(‘U’,$data[0]->ID);

って感じ?まとめると以下でNEW!を好きなところに表示できました。

 


<?php
$data = get_posts(‘post_type=post&showposts=1&category=1’); //dataにカテゴリID:1の最新記事のデータを1件格納する
if(isset($data[0])) {
$days = 10; //Newを表示させたい期間の日数
$today = date_i18n(‘U’);
$entry = get_the_time(‘U’,$data[0]->ID);//$dataに入った1件の記事のIDを変数に入れて、その記事のdateを取得
$kiji = date(‘U’,($today – $entry)) / 86400 ;//←詳しくは上記記事を参照
if( $days > $kiji ){
echo ‘NEW!’; //NEW!を表示
}
}?>