PHP函数返回错误的日期

时间:2013-12-22 04:09:09

标签: php wordpress

我正在学习如何制作WordPress插件。我确实做了一些简单的插件,但没有这个简单。这是一个活动日历。来自函数“ nc_get_start_date()”的var_dump在页面上输出错误的日期。

var_dump(nc_get_start_date())的输出;

  

string(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, ",");
    }

当我在没有该功能的情况下在page-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; 

1 个答案:

答案 0 :(得分: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, ",");
    }

我没有全球$ post;