static function get_post($_post, $post_type = false)
{
switch (gettype($_post)) {
case 'integer':
$_post = get_post($_post);
break;
case 'string':
if (is_numeric($_post)) {
$_post = get_post(absint($_post));
} else {
if ($post_type) {
/*
* Get post by slug
*/
$_post = get_page_by_path($_post, OBJECT, $post_type);
} else {
$_post = null;
}
}
break;
case 'array':
if (isset($_post['ID'])) {
$_post = get_post(absint($_post['ID']));
} else {
if (isset($_post['post'])) {
$_post = self::get_post($_post['post']);
}
}
break;
case 'object':
if (!is_a($_post, 'WP_Post') && property_exists($_post, 'ID')) {
$_post = get_post(absint($_post->ID));
}
break;
default:
$_post = null;
}
return $_post;
}