2011-10-18 4 views
0

次のコードは過去30日間の投稿を示しています。
すべての投稿はexpiringという名前のmeta_keyと、たとえば2011-10-22というmeta_valueを持っています。次の日に期限切れになる投稿を表示する機能を編集するにはどうすればよいですか?

私の場合、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

私は問題を正しく理解していれば、私は知りませんが、あなたがあなたの関数でこれを持つようにしたいようだ:むしろポストの日付よりEXPIRE_DATE上

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

ソート、および有効期限が切れるすべてを取ります日付は将来3日以内です。

+0

問題は 'expire_date'ではなく' get_post_meta($ post-> ID、 'expiring'、true);です。 – asotshia

+0

これは、データベースが有効期限をリストするのではなく、post_dateだけをリストすることを意味しますか?そして、有効期限が何であるかを調べるには、データベースから最初に取り出し、meta_dateを要求する必要がありますか? – Dennis

+0

これで、すべての投稿を取得し、ループしてメタデータを確認し、有効期限が 'date(Ymd)'から3日間の日付(YMd、mktime(0、0、 0、日付( "m")、日付( "d")+ 3、日付( "Y")) – Dennis

関連する問題