Yoast\WP\SEO\Dashboard\Application\Taxonomies

Taxonomies_Repository{}Yoast 1.0

The repository to get taxonomies.

Хуков нет.

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

$Taxonomies_Repository = new Taxonomies_Repository();
// use class methods

Методы

  1. public __construct(
  2. public get_content_type_taxonomy( string $content_type )

Код Taxonomies_Repository{} Yoast 24.4

class Taxonomies_Repository {

	/**
	 * The taxonomies collector.
	 *
	 * @var Taxonomies_Collector
	 */
	private $taxonomies_collector;

	/**
	 * The filter pairs repository.
	 *
	 * @var Filter_Pairs_Repository
	 */
	private $filter_pairs_repository;

	/**
	 * The constructor.
	 *
	 * @param Taxonomies_Collector    $taxonomies_collector    The taxonomies collector.
	 * @param Filter_Pairs_Repository $filter_pairs_repository The filter pairs repository.
	 */
	public function __construct(
		Taxonomies_Collector $taxonomies_collector,
		Filter_Pairs_Repository $filter_pairs_repository
	) {
		$this->taxonomies_collector    = $taxonomies_collector;
		$this->filter_pairs_repository = $filter_pairs_repository;
	}

	/**
	 * Returns the object of the filtering taxonomy of a content type.
	 *
	 * @param string $content_type The content type that the taxonomy filters.
	 *
	 * @return Taxonomy|null The filtering taxonomy of the content type.
	 */
	public function get_content_type_taxonomy( string $content_type ) {
		// First we check if there's a filter that overrides the filtering taxonomy for this content type.
		$taxonomy = $this->taxonomies_collector->get_custom_filtering_taxonomy( $content_type );
		if ( $taxonomy ) {
			return $taxonomy;
		}

		// Then we check if there is a filter explicitly made for this content type.
		$taxonomy = $this->filter_pairs_repository->get_taxonomy( $content_type );
		if ( $taxonomy ) {
			return $taxonomy;
		}

		// If everything else returned empty, we can always try the fallback taxonomy.
		return $this->taxonomies_collector->get_fallback_taxonomy( $content_type );
	}
}