WordPress的:根据自定义字段显示未来事件和按日期排序

问题描述:

我有一个自定义内容类型(事件),在该类型中我有一个自定义日期字段,名称:'日期'。在我的模板中,我正在运行WP_Query以返回事件列表。我想只收到将来的事件(根据我的习惯'日期'字段),然后按相同的字段排序。WordPress的:根据自定义字段显示未来事件和按日期排序

我曾尝试以下,但它只是返回不论日期

$today = date('d M, y'); 

    $args = array (
     'post_type'    => 'event', 
     'meta_query'    => array(
      array(
       'key'  => 'date', 
       'value'  => $today, 
       'compare' => '>', 
       'type'  => 'CHAR', 
      ), 
     ), 
     'meta_key'    => 'date', 
     'orderby'    => 'meta_value_num', 
     'order'     => 'ASC' 
    ); 

作为一个说明在系统中所有的“事件”的名单,如果我更换类型从“CHAR”到' DATE”我没有得到任何结果返回...

+0

我觉得这是更好地张贴在这个问题:http://wordpress.stackexchange.com – Siyah

+0

公允评论!分类 - 谢谢 – Kev

试试这个:

的functions.php

function custom_unixtimesamp ($post_id) { 
    if (get_post_type($post_id) == 'events') { 
    $startdate = get_post_meta($post_id, 'event_date_begins', true); 

     if($startdate) { 
      $dateparts = explode('/', $startdate); 
      $newdate1 = strtotime(date('d.m.Y H:i:s', strtotime($dateparts[1].'/'.$dateparts[0].'/'.$dateparts[2]))); 
      update_post_meta($post_id, 'unixstartdate', $newdate1 ); 
     } 
    } 
} 
add_action('save_post', 'custom_unixtimesamp', 100, 2); 

然后查询

$today = time();  

    $args = array(
     'post_type' => 'events', 
    'post_status' => 'publish', 
    'posts_per_page' => '10', 
    'meta_query' => array(
     array(
      'key' => 'unixstartdate', 
      'compare' => '>=', 
      'value' => $today, 
      ) 
      ), 
    'meta_key' => 'event_date_begins', 
    'orderby' => 'meta_value', 
    'order' => 'ASC', 
    'paged' => (get_query_var('paged') ? get_query_var('paged') : 1), 
);