2013-12-22 6 views
0

Я изучаю, как сделать плагин WordPress. Я сделал несколько простых плагинов, но не так сложно, как этот. Это Календарь событий. Var_dump из функции «nc_get_start_date()» на странице он выдает неправильные даты.Функция 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 

В файле functions.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 без функции она делает все втирают.

$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 epoch, которая заставляет меня полагать, что $ 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, ","); 
    } 

Я не делал глобальные $ поста;

Смежные вопросы