Yoast\WP\SEO\Bulk_Editor\Infrastructure\Posts
Indexable_Posts_Collector::build_query
Builds the filtered indexable query for the given query, without ordering or paging.
Built fresh for each use so the same filters back both the total count and the page of rows.
Метод класса: Indexable_Posts_Collector{}
Хуков нет.
Возвращает
ORM. The filtered query.
Использование
// private - только в коде основоного (родительского) класса $result = $this->build_query( $query ): ORM;
- $query(Posts_Query) (обязательный)
- The query describing the filters to apply.
Код Indexable_Posts_Collector::build_query() Indexable Posts Collector::build query Yoast 28.7
private function build_query( Posts_Query $query ): ORM {
$builder = $this->indexable_repository->query()
->where( 'object_type', 'post' )
->where( 'object_sub_type', $query->get_content_type() )
->where_in( 'post_status', $query->get_statuses() )
// Password-protected posts (is_protected) are not shown in bulk editing.
->where( 'is_protected', 0 );
if ( $query->has_author_filter() ) {
$builder->where( 'author_id', $query->get_author_id() );
}
if ( $query->has_include() ) {
$builder->where_in( 'object_id', $query->get_include_ids() );
}
if ( $query->has_search() ) {
$this->apply_search( $builder, $query->get_search() );
}
if ( $query->get_needs_improvement() !== [] ) {
$this->apply_needs_improvement( $builder, $query->get_needs_improvement(), $query->are_scores_enabled(), $query->get_content_type() );
}
return $builder;
}