Yoast\WP\SEO\Schema_Aggregator\Infrastructure\Indexable_Repository
WordPress_Query_Repository::get
Builds on-the-fly public indexables in a paginated manner.
Метод класса: WordPress_Query_Repository{}
Хуков нет.
Возвращает
Массив
Использование
$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() 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;
}