2017-03-22 22 views
1

我希望根據我設置的自定義日期字段隱藏過去的活動。根據自定義日期字段隱藏過去的活動帖子

<?php 
the_post(); 
// Get 'events' posts 
$events_posts = get_posts(array(
'post_type' => 'events', 
'posts_per_page' => -4, // Unlimited posts 
'orderby' => 'meta_value', 
'meta_key' => 'event_date', 
'order' => 'ASC' 
)); 

if ($events_posts): 
?> 

該代碼目前呈現出我的活動有序,但我想隱藏事件比今天的日期的?

+0

'event_date'字段的日期格式是什麼? –

回答

-1

我想你是在討論通過$ event_posts結果循環,同時排除那些日期「小於今天」的事件。這是一種非常優化和不恰當的方式來實現你想要的。你應該讓MySQL檢索日期大於NOW()的事件。如果event_date字段是DATETIME類型,則修改您的查詢以僅獲取「event_date」大於NOW()的事件。

"SELECT events WHERE event_date >NOW()" 
1

如果您想通過自定義後場來過濾數據,你必須使用meta_query這個

這裏是工作示例:

$args = [ 
    'post_type' => 'events', 
    'posts_per_page' => -1, // Unlimited posts 
    'orderby' => 'meta_value', 
    'meta_key' => 'event_date', 
    'order' => 'ASC', 
    'meta_query' => [ 
     'relation' => 'AND', 
     [ 
      'key' => 'event_date', 
      'value' => date('Y-m-d'), //<-- replace this with your correct date format 
      'compare' => '>', 
      'type' => 'DATE' 
     ], 
    ], 
]; 

$queryEvent = new WP_Query($args); 
if ($queryEvent->have_posts()) : 
    /* Start the Loop */ 
    while ($queryEvent->have_posts()) : 
    $queryEvent->the_post(); 

    //you post 

    endwhile; 
endif; 

希望這有助於!

相關回復:https://stackoverflow.com/a/42325398/5019802

相關問題