This repository has been archived on 2022-06-23. You can view files and clone it, but cannot push or open issues or pull requests.
divi/core/components/post/Taxonomy.php
2021-12-07 11:08:05 +00:00

96 lines
1.7 KiB
PHP

<?php
abstract class ET_Core_Post_Taxonomy extends ET_Core_Post_Object {
/**
* The `$args` array used when registering this taxonomy.
*
* @since 3.0.99
* @var array
*/
protected $_args;
/**
* The WP Taxonomy object for this instance.
*
* @since 3.0.99
* @var WP_Taxonomy
*/
protected $_wp_object;
/**
* Taxonomy key.
*
* @since 3.0.99
* @var string
*/
public $name;
/**
* The post types to which this taxonomy applies.
*
* @since 3.0.99
* @var array
*/
public $post_types;
/**
* This taxonomy's terms.
*
* @var WP_Term[]
*/
public $terms;
/**
* @inheritDoc
*/
public $wp_type = 'taxonomy';
/**
* ET_Core_Post_Taxonomy constructor.
*/
public function __construct() {
parent::__construct();
$name = $this->name;
/**
* Filters the supported post types for a custom taxonomy. The dynamic portion of the
* filter name, $name, refers to the name of the custom taxonomy.
*
* @since 3.0.99
*
* @param array
*/
$this->post_types = apply_filters( "et_core_taxonomy_{$name}_post_types", $this->post_types );
}
/**
* Get the terms for this taxonomy.
*
* @return array|int|WP_Error|WP_Term[]
*/
public function get() {
if ( is_null( $this->terms ) ) {
$this->terms = get_terms( $this->name, array( 'hide_empty' => false ) );
}
return $this->terms;
}
/**
* Get a derived class instance.
*
* @since 3.0.99
*
* @param string $type See {@see self::$wp_type} for accepted values. Default is 'taxonomy'.
* @param string $name The name/slug of the derived object. Default is an empty string.
*
* @return self|null
*/
public static function instance( $type = 'taxonomy', $name = '' ) {
return parent::instance( $type, $name );
}
}