【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; ?>

回答の条件
  • 1人3回まで
  • 13歳以上
  • 登録:2010/07/10 04:57:05
  • 終了:2010/07/10 12:28:46

ベストアンサー

id:const No.2

const回答回数3ベストアンサー獲得回数32010/07/10 12:19:50

ポイント100pt

定数等はループの外においてカウンタを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; ?>
id:asgi

おおー、できましたー。

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

2010/07/10 12:27:51

その他の回答(1件)

id:koriki-WeKan No.1

koriki-WeKan回答回数342ベストアンサー獲得回数202010/07/10 06:56:14

ポイント35pt

修正版

<?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>";
    }
}
?>
id:asgi

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

...

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

...

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

2010/07/10 07:21:54
id:const No.2

const回答回数3ベストアンサー獲得回数32010/07/10 12:19:50ここでベストアンサー

ポイント100pt

定数等はループの外においてカウンタを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; ?>
id:asgi

おおー、できましたー。

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

2010/07/10 12:27:51

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません