Yoast\WP\SEO\Schema_Aggregator\Infrastructure\Indexable_Repository

WordPress_Query_Repository::getpublicYoast 1.0

Builds on-the-fly public indexables in a paginated manner.

Метод класса: WordPress_Query_Repository{}

Хуков нет.

Возвращает

Массив. The array of public indexables.

Использование

$WordPress_Query_Repository = new WordPress_Query_Repository();
$WordPress_Query_Repository->get( $page, $page_size, $post_type ): array;
$page(int) (обязательный)
The page number.
$page_size(int) (обязательный)
The number of items per page.
$post_type(строка) (обязательный)
The post type to filter by.

Код WordPress_Query_Repository::get() Yoast 27.7

public function get( int $page, int $page_size, string $post_type ): array {
	$query = new WP_Query(
		[
			'post_type'      => $post_type,
			'post_status'    => 'publish',
			'posts_per_page' => $page_size,
			'paged'          => $page,
			'fields'         => 'ids',
			'no_found_rows'  => false,
		],
	);

	if ( ! $query instanceof WP_Query ) {
		return [];
	}

	$post_ids          = isset( $query->posts ) && \is_array( $query->posts ) ? $query->posts : [];
	$public_indexables = [];
	foreach ( $post_ids as $post_id ) {
		$indexable = $this->indexable_repository->find_by_id_and_type( $post_id, 'post' );
		if ( $indexable !== null && ( $indexable->is_public === true || $indexable->is_public === null ) ) {
			if ( empty( $indexable->id ) ) {

				$indexable->id = $post_id;
			}
			$public_indexables[] = $indexable;
		}
	}
	return $public_indexables;
}