2013-12-22 147 views
0

我正在学习如何制作一个WordPress插件。我做了几个简单的插件,但没有像这个那么复杂。这是一个活动日历。函数“nc_get_start_date()”的var_dump在页面上输出错误的日期。PHP函数返回错误日期

var_dump(nc_get_start_date());

字符串(32) “1970-01-01,1970-01-01,1970-01-01”

这是什么功能应该在现实

返回
23-12-2013, 25-12-2013, 26-12-2013 

在插件文件夹的function.php中。这是代码

/* Query to get the events post from the database */ 
    function get_nc_events(){ 
     global $post; 
     $query = new WP_Query( 
      array( 
       'post_type' => 'events', 
       'post_status' => 'publish', 
       'posts_per_page' => -1, 
       'order' => 'ASC' 
      ) 
     ); 
     return $query; 
    } 

/* Get the start date from the above function */ 
    function nc_get_start_date(){ 
     $query = get_nc_events(); 
     while ($query->have_posts()) : $query->the_post(); 
      $nc_event_id = $post->ID; 
      $wnc_start_date = get_post_meta($nc_event_id, 'wnc_start_date'); 
      $wnc_start_date = $wnc_start_date[0]; 
      $wnc_start_date = date("Y-m-d", strtotime($wnc_start_date)); 
      $wnc_start_date_array .= "$wnc_start_date,"; 
     endwhile; 
     return rtrim($wnc_start_date_array, ","); 
    } 

当我写在页面caledar.php的代码没有它呈现的一切prefectly功能。

$query = get_nc_events(); 
while ($query->have_posts()) : $query->the_post(); 
    $nc_event_id = $post->ID; 
    $wnc_start_date = get_post_meta($nc_event_id, 'wnc_start_date'); 
    echo $wnc_start_date = $wnc_start_date[0] . "<br/>"; 
endwhile; 
+0

是什么get_post_meta($ nc_event_id, 'wnc_start_date')' –

+0

的'值从'get_post_meta'我得到** 23-12-2013,25-12-2013,26-12-2013 ** – Johny

+0

这unix时代的日期,这导致我相信$ wnc_start_date [0]是0 – Zarathuztra

回答

1

问题解决。感谢大家。问题出在这个功能

/* Get the start date from the above function */ 
    function nc_get_start_date(){ 
     global $post; 
     $query = get_nc_events(); 
     while ($query->have_posts()) : $query->the_post(); 
      $nc_event_id = $post->ID; 
      $wnc_start_date = get_post_meta($nc_event_id, 'wnc_start_date'); 
      $wnc_start_date = $wnc_start_date[0]; 
      $wnc_start_date = date("Y-m-d", strtotime($wnc_start_date)); 
      $wnc_start_date_array .= "$wnc_start_date,"; 
     endwhile; 
     return rtrim($wnc_start_date_array, ","); 
    } 

我没有做global $ post;