Yoast\WP\SEO\Builders

Indexable_Hierarchy_Builder::build()publicYoast 1.0

Builds the ancestor hierarchy for an indexable.

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

Хуков нет.

Возвращает

Indexable. The indexable.

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

$Indexable_Hierarchy_Builder = new Indexable_Hierarchy_Builder();
$Indexable_Hierarchy_Builder->build( $indexable );
$indexable(Indexable) (обязательный)
The indexable.

Код Indexable_Hierarchy_Builder::build() Yoast 22.4

public function build( Indexable $indexable ) {
	if ( $this->hierarchy_is_built( $indexable ) ) {
		return $indexable;
	}

	$this->indexable_hierarchy_repository->clear_ancestors( $indexable->id );

	$indexable_id = $this->get_indexable_id( $indexable );
	$ancestors    = [];
	if ( $indexable->object_type === 'post' ) {
		$this->add_ancestors_for_post( $indexable_id, $indexable->object_id, $ancestors );
	}

	if ( $indexable->object_type === 'term' ) {
		$this->add_ancestors_for_term( $indexable_id, $indexable->object_id, $ancestors );
	}
	$indexable->ancestors     = \array_reverse( \array_values( $ancestors ) );
	$indexable->has_ancestors = ! empty( $ancestors );
	if ( $indexable->id ) {
		$this->save_ancestors( $indexable );
	}

	return $indexable;
}