我在显示自定义帖子时遇到问题-我希望每个帖子仅在自定义字段中设置的日期未过时显示。
我不知道应该将if语句放在代码中的什么位置。我的想法是:
if($daysleft >= 0)
then execute the while "custom post";
以下代码显示了所有自定义帖子-过期和未过期:
<?php
while(have_posts() ) : the_post();
$date = get_post_meta($post->ID, \'_single_date\', true);
$daysleft = round( ($date-time()) / 24 / 60 / 60); ?>
<div class="coupon-date">
<?php
if($date == \'\')_e(\'valid\', \'Couponize\');
else if($daysleft <= 0) _e(\'expired\', \'Couponize\');
else echo sprintf( _n(\'%d day left.\', \'%d days left.\', $daysleft, \'Couponize\'), $daysleft );
?>
SO网友:cjbj
在您的循环中while(have_posts() ) : the_post();
您将无条件地通过所有帖子,但由于循环在the_post()
实际上什么都没有发生。这就是条件的所在:
while(have_posts() ) {
the_post();
if ($daysleft >= 0) {
... other actions
}
}
你的代码在我看来有点不完整,所以我不确定我的代码是否正确,但这肯定是你想要的条件。
请注意,如果查询已返回,例如,如果其中一些帖子已过期,您可能会少显示15篇帖子。如果希望显示固定金额,则不能更改显示查询结果的循环,而应更改查询本身。