File "post.class.php"
Full Path: /home/londdqdw/public_html/06/wp-content/plugins/timetable/class/post.class.php
File size: 2.39 KB
MIME-type: text/x-php
Charset: utf-8
<?php
class TT_Post
{
public $ID;
public $post_title;
public $post_name;
public $post_status;
public $post_type;
public $menu_order;
public function __construct()
{
$this->SetDefaults();
}
public static function CreateFromWpObject(WP_Post $WpPost)
{
$post = new static();
$post->ID = $WpPost->ID;
$post->post_title = $WpPost->post_title;
$post->post_name = $WpPost->post_name;
$post->post_status = $WpPost->post_status;
$post->post_type = $WpPost->post_type;
$post->menu_order = $WpPost->menu_order;
return $post;
}
public static function Insert(TT_Post $post)
{
$args = array(
'post_title' => $post->post_title,
'post_name' => $post->post_name,
'post_type' => $post->post_type,
'post_status' => $post->post_status,
'menu_order' => $post->menu_order,
);
$result = wp_insert_post($args);
return $result;
}
public static function Fetch($args = array())
{
$defaults = static::GetDefaultFetchArgs();
$args += $defaults;
$result = get_posts($args);
if(!$result)
return null;
$posts = array();
foreach($result as $key=>$WpPost)
$posts[] = static::CreateFromWpObject($WpPost);
return $posts;
}
public static function FetchOne($args = array())
{
$result = static::Fetch($args);
if(is_null($result))
return null;
return $result[0];
}
public static function FetchOneById($Id)
{
return static::FetchOne(array(
'post__in' => array($Id),
));
}
protected function SetDefaults()
{
$defaults = static::GetDefaults();
$this->ID = $defaults['ID'];
$this->post_title = $defaults['post_title'];
$this->post_name = $defaults['post_name'];
$this->post_type = $defaults['post_type'];
$this->post_status = $defaults['post_status'];
$this->menu_order = $defaults['menu_order'];
}
protected static function GetDefaults()
{
return array(
'ID' => 0,
'post_title' => '',
'post_name' => '',
'post_type' => 'post',
'post_status' => 'publish',
'menu_order' => 0,
);
}
protected static function GetDefaultFetchArgs()
{
$defaults = array(
'posts_per_page' => -1,
'nopaging' => true,
'orderby' => 'date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
);
return $defaults;
}
protected static function GetDefaultCreateArgs()
{
$defaults = array(
'post_type' => 'post',
'post_status' => 'publish',
);
return $defaults;
}
}