仅当自定义元框的日期未过期时才显示自定义帖子

时间:2016-06-06 作者:anandmongol

我在显示自定义帖子时遇到问题-我希望每个帖子仅在自定义字段中设置的日期未过时显示。

我不知道应该将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 ); 
?>

1 个回复
SO网友:cjbj

在您的循环中while(have_posts() ) : the_post(); 您将无条件地通过所有帖子,但由于循环在the_post() 实际上什么都没有发生。这就是条件的所在:

while(have_posts() ) {
    the_post();
    if ($daysleft >= 0) {
         ... other actions
         }
    }
你的代码在我看来有点不完整,所以我不确定我的代码是否正确,但这肯定是你想要的条件。

请注意,如果查询已返回,例如,如果其中一些帖子已过期,您可能会少显示15篇帖子。如果希望显示固定金额,则不能更改显示查询结果的循环,而应更改查询本身。

相关推荐

WordPress使用AJAX的UPDATE_USER_META onClick按钮

我有一个按钮,限制为7次单击,当单击数字5被禁用时,我的问题是,如果用户从不同的设备登录,计数将从0开始,与刷新页面相同。我的需要是,在user\\u meta中保存单击编号结果,如果再次单击,则更新,直到单击编号5,按钮更改为禁用。在DB user\\u meta info中:user\\u id:user\\u idmeta\\u键:clickCounterTravmeta\\u值:1(单击次数)这是页面加载时的代码,如果单击次数大于,则禁用按钮;4.Do Not Work:<script>