2011-10-18 56 views
0

以下代码显示最近30天发布的帖子。
我有它的每篇文章都有一个名为expiring的meta_key,例如meta_value为2011-10-22如何编辑功能以显示即将到期的帖子?

就我而言,我想删除post_date并找出哪些帖子即将过期。例如,今天我们有2011-10-18,我想显示从今天(18)直到2011-10-21的所有帖子。这意味着今天过后3天。

明天2011-10-19它必须显示可能在2011-10-22到期的帖子。

这是我如何得到meta_key get_post_meta($post->ID, 'expiring', true);

的价值这是我尝试过编辑功能。

<?php 
function filter_where($where = '') { 
    //posts in the last 30 days 
    $where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'"; 
    return $where; 
} 
add_filter('posts_where', 'filter_where'); 

query_posts('post_type=post&posts_per_page=10&order=DESC'); 

while (have_posts()): the_post(); ?> 

<li><?php the_title(); ?></li> 

<?php 
endwhile; 
wp_reset_query(); 
?> 

谢谢你的帮助。

回答

1

我不知道我是否正确地理解这个问题,但似乎你想拥有这在你的函数:

$where .= " AND expire_date < '" . date('Y-m-d', strtotime('+3 days')) . "'"; 

排序在EXPIRE_DATE,而不是发布日期,并采取一切在到期日期不得晚于3天。

+0

问题是没有'expire_date',而是'get_post_meta($ post-> ID,'expiring',true);'我试过了。 – asotshia

+0

这意味着数据库不会列出过期日期,但仅列出post_date?为了找出到期日是什么,您需要首先将其从数据库中取出,然后询问meta_date? – Dennis

+0

看来你必须得到所有的帖子,然后遍历它们,询问元数据,并检查到期日期是否在现在'日期(Ymd)'和三天'日期(YMd,mktime(0,0, 0,日期(“m”),日期(“d”)+ 3,日期(“Y”)) – Dennis

相关问题