Timber\PostGetter::get_post_class PHP Method

get_post_class() public static method

public static get_post_class ( string $post_type, string | array $post_class = '\Timber\Post' ) : string
$post_type string
$post_class string | array
return string
    public static function get_post_class($post_type, $post_class = '\\Timber\\Post')
    {
        $post_class = apply_filters('Timber\\PostClassMap', $post_class);
        $post_class_use = '\\Timber\\Post';
        if (is_array($post_class)) {
            if (isset($post_class[$post_type])) {
                $post_class_use = $post_class[$post_type];
            } else {
                Helper::error_log($post_type . ' not found in ' . print_r($post_class, true));
            }
        } elseif (is_string($post_class)) {
            $post_class_use = $post_class;
        } else {
            Helper::error_log('Unexpeted value for PostClass: ' . print_r($post_class, true));
        }
        if (!class_exists($post_class_use) || !(is_subclass_of($post_class_use, '\\Timber\\Post') || is_a($post_class_use, '\\Timber\\Post', true))) {
            Helper::error_log('Class ' . $post_class_use . ' either does not exist or implement \\Timber\\Post');
        }
        return $post_class_use;
    }

Usage Example

 /**
  * @param mixed $query
  * @param string|array $PostClass
  * @return array|bool|null
  */
 public static function get_post($query = false, $PostClass = '\\Timber\\Post')
 {
     // if a post id is passed, grab the post directly
     if (is_numeric($query)) {
         $post_type = get_post_type($query);
         $PostClass = PostGetter::get_post_class($post_type, $PostClass);
         $post = new $PostClass($query);
         // get the latest revision if we're dealing with a preview
         $posts = PostsCollection::maybe_set_preview(array($post));
         if ($post = reset($posts)) {
             return $post;
         }
     }
     $posts = self::get_posts($query, $PostClass);
     if ($post = reset($posts)) {
         return $post;
     }
 }
All Usage Examples Of Timber\PostGetter::get_post_class