人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【wordpress/php】
現在wordpressでサイト制作をしています。

ページ内で新着7日間のエントリーは新着と書かれた画像を出し、
さらに画像のdiv毎にnew1〜new6となるようにclassをつけたいと考えています。
(下記ソース部分の<div class=\"new$hoge\"><img src=\"/images/new.gif\" alt=\"\" /></div>の部分です。)

下記のコードでは、排出されるコードは全て同じになってしまいます。
この方法ではまずいのはわかるのですが、どうすれば正しく表示できるかわからないでいます。

php,wordpressが得意な方ご教授頂けないでしょうか?
よろしくお願い致します。

<?php $myposts = get_posts('numberposts=6'); foreach($myposts as $post) : ?>
<?php
$days=7;
$hoge=1;
$today=date('U'); $entry=get_the_time('U');
$diff1=date('U',($today - $entry))/86400;
if ($days > $diff1) {
echo "<div class=\"new$hoge\"><img src=\"/images/new.gif\" alt=\"\" /></div>";
}
?>
<?php endforeach; ?>

●質問者: asgi
●カテゴリ:インターネット ウェブ制作
✍キーワード:Class Days echo hoge PHP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● koriki-WeKan
●35ポイント

修正版

<?php
$myposts = get_posts('numberposts=6');
foreach($myposts as $post) {
 $days=7;
 $hoge=1;
 $today=date('U');
 $entry=get_the_time('U');
 $diff1=date('U',($today - $entry))/86400;
 if ($days > $diff1) {
 echo "<div class=\"new$hoge\"><img src=\"/images/new.gif\" alt=\"\" /></div>";
 }
}
?>
◎質問者からの返答

ありがとうございます!出力はできたのですが、

...

と続くような感じでした。

...

と続くのが理想なのですが、出来ましたら引き続きご回答頂けると嬉しいです。


2 ● const
●100ポイント ベストアンサー

定数等はループの外においてカウンタをifの中でインクリメントします。

<?php
define('NEW_POST_DAYS', 7);
$myposts = get_posts('numberposts=6');
$new_secs = NEW_POST_DAYS * 86400;
$new_count = 1;
$now = time(); 
foreach ($myposts as $post) : ?>
<?php
 $entry_time = get_the_time('U');
 if ($now - $entry_time < $new_secs) {
 echo '<div class="new' . $new_count . '"><img src="/images/new.gif" alt="" /></div>';
 $new_count++;
 }
?>
<?php endforeach; ?>
◎質問者からの返答

おおー、できましたー。

ありがとうございますー。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ