*/ private $statuses; /** * The author to limit posts to, or null for no author restriction. * * @var int|null */ private $author_id; /** * The constructor. * * @param string $content_type The content type to get posts for. * @param int $page The page of results to get, starting at 1. * @param int $per_page The number of posts per page. * @param string $search The search term, or an empty string for no search. * @param array $statuses The post statuses to include. * @param int|null $author_id The author to limit posts to, or null for no author restriction. */ public function __construct( string $content_type, int $page, int $per_page, string $search, array $statuses, ?int $author_id = null ) { $this->content_type = $content_type; $this->page = $page; $this->per_page = $per_page; $this->search = $search; $this->statuses = $statuses; $this->author_id = $author_id; } /** * Returns the content type to get posts for. * * @return string The content type. */ public function get_content_type(): string { return $this->content_type; } /** * Returns the page of results to get. * * @return int The page, starting at 1. */ public function get_page(): int { return $this->page; } /** * Returns the number of posts per page. * * @return int The number of posts per page. */ public function get_per_page(): int { return $this->per_page; } /** * Returns the search term. * * @return string The search term, or an empty string for no search. */ public function get_search(): string { return $this->search; } /** * Returns whether a search term is set. * * @return bool Whether a search term is set. */ public function has_search(): bool { return $this->search !== ''; } /** * Returns the post statuses to include. * * @return array The post statuses. */ public function get_statuses(): array { return $this->statuses; } /** * Returns the author to limit posts to. * * @return int|null The author ID, or null for no author restriction. */ public function get_author_id(): ?int { return $this->author_id; } /** * Returns whether posts are limited to a single author. * * @return bool Whether an author restriction is set. */ public function has_author_filter(): bool { return $this->author_id !== null; } /** * Returns the zero-based offset of the requested page. * * @return int The offset. */ public function get_offset(): int { return ( ( $this->page - 1 ) * $this->per_page ); } }