0

私の現在のコードは、cpt 'events' からの 5 件の投稿を示しています。これは私が使用しているコードです:

//get post type ==> events
global $post;
$args = array(
      'post_type' => 'events',
      'numberposts' => $data['home_events_count'],
      'orderby' => 'meta_value',
      'meta_key' => 'timestamp_earth_event_start_date',
      'meta_query' => $meta_query
);

「timestamp_earth_event_start_date」が現在の日付よりも古い投稿 (イベント) を除外したいと考えています。

自分でコードを修正しようとしましたが、それでも過去のイベントが表示されます。

どんな助けでも大歓迎です!

4

1 に答える 1

1

クエリ文字列を渡すこの1つを試してください

$numposts=$data['home_events_count'];
    query_posts('post_type=events
    &post_status=publish&numberposts=$numposts
    &posts_per_page=1
    &meta_key=timestamp_earth_event_start_date
    &orderby=meta_value_num
    &order=DESC')

配列を渡すことによって

$args = array(
    'post_status' => 'publish',
    'post_type' =  'events' ,
    'meta_key' => 'timestamp_earth_event_start_date',
    'order' => 'DESC',
    'orderby' => 'meta_value_num'
);
$event_posts = new WP_Query( $args );

次のようなクエリのフィルターを追加できる他のオプション

add_filter( 'posts_orderby', 'my_posts_orderby_date', 10, 2 );
function my_posts_orderby_date( $orderby, $query ) {
    global $wpdb;
    return " CAST( $wpdb->postmeta.meta_value AS DATE ) " . $query->get( 'order' );
}
于 2013-09-24T17:06:10.493 に答える