Regitro de taxonomias
This commit is contained in:
parent
d9694f7abb
commit
d69aad435b
|
@ -53,7 +53,7 @@ class Tainacan_Taxonomy extends Entity {
|
|||
|
||||
|
||||
|
||||
|
||||
// TODO: Uma taxonomia pode estar vinculada a mais de uma coleção
|
||||
function get_collection() {
|
||||
return new TainacanCollection( $this->get_mapped_property('collection') );
|
||||
}
|
||||
|
@ -80,6 +80,8 @@ class Tainacan_Taxonomy extends Entity {
|
|||
|
||||
/**
|
||||
* @param TainacanCollection
|
||||
*
|
||||
* TODO: Uma taxonomia pode estar vinculada a mais de uma coleção
|
||||
*/
|
||||
function set_collection($value) {
|
||||
$ID = ($value instanceof TainacanCollection ) ? $value->get_id() : $value;
|
||||
|
|
|
@ -26,7 +26,7 @@ class TainacanItems {
|
|||
$collections = $TainacanCollections->get_collections();
|
||||
$taxonomies = $Tainacan_Taxonomies->get_taxonomies();
|
||||
|
||||
$labels = array(
|
||||
$cpt_labels = array(
|
||||
'name' => 'Item',
|
||||
'singular_name' => 'Item',
|
||||
'add_new' => 'Adicionar Novo',
|
||||
|
@ -44,9 +44,14 @@ class TainacanItems {
|
|||
if (!is_array($collections))
|
||||
return;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// register collections post type and associate taxonomies
|
||||
foreach ($collections as $collection) {
|
||||
|
||||
$labels['menu_name'] = $collection->get_name();
|
||||
$cpt_labels['menu_name'] = $collection->get_name();
|
||||
$cpt_slug = $TainacanCollections->get_collection_db_identifier($collection->get_id());
|
||||
|
||||
$args = array(
|
||||
|
@ -68,16 +73,42 @@ class TainacanItems {
|
|||
'capability_type' => 'post',
|
||||
);
|
||||
register_post_type($cpt_slug, $args);
|
||||
$this->register_post_type_taxonomies( $cpt_slug, $taxonomies );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function register_post_type_taxonomies( $cpt_slug, $taxonomies ){
|
||||
|
||||
|
||||
// register taxonomies
|
||||
foreach ($taxonomies as $taxonomy) {
|
||||
register_taxonomy_for_object_type( $taxonomy, $cpt_slug );
|
||||
$labels = array(
|
||||
'name' => __( 'Taxonomies', 'textdomain' ),
|
||||
'singular_name' => __( 'Taxonomy','textdomain' ),
|
||||
'search_items' => __( 'Search taxonomies', 'textdomain' ),
|
||||
'all_items' => __( 'All taxonomies', 'textdomain' ),
|
||||
'parent_item' => __( 'Parent taxonomy', 'textdomain' ),
|
||||
'parent_item_colon' => __( 'Parent taxonomy:', 'textdomain' ),
|
||||
'edit_item' => __( 'Edit taxonomy', 'textdomain' ),
|
||||
'update_item' => __( 'Update taxonomy', 'textdomain' ),
|
||||
'add_new_item' => __( 'Add New taxonomy', 'textdomain' ),
|
||||
'new_item_name' => __( 'New Genre taxonomy', 'textdomain' ),
|
||||
'menu_name' => __( 'Genre', 'textdomain' ),
|
||||
);
|
||||
|
||||
$args = array(
|
||||
'hierarchical' => true,
|
||||
'labels' => $labels,
|
||||
'show_ui' => tnc_enable_dev_wp_interface(),
|
||||
'show_admin_column' => tnc_enable_dev_wp_interface(),
|
||||
);
|
||||
|
||||
// TODO Uma taxonomia pode estar vinculada a mais de uma coleção
|
||||
register_taxonomy(
|
||||
$Tainacan_Taxonomies->get_taxonomy_db_identifier($taxonomy),
|
||||
array( $TainacanCollections->get_collection_db_identifier($taxonomy->get_collection()->get_id()) ), $args
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function insert(TainacanItem $item) {
|
||||
|
|
|
@ -63,9 +63,24 @@ class Tainacan_Taxonomies {
|
|||
register_post_type(self::POST_TYPE, $args);
|
||||
}
|
||||
|
||||
function get_taxonomies(){
|
||||
$array = get_taxonomies();
|
||||
return ( is_array( $array ) ) ? $array : [];
|
||||
function get_taxonomies($args = []){
|
||||
$args = array_merge([
|
||||
'post_type' => self::POST_TYPE,
|
||||
'posts_per_page' => -1,
|
||||
'post_status' => 'publish',
|
||||
], $args);
|
||||
|
||||
$posts = get_posts($args);
|
||||
|
||||
$return = [];
|
||||
|
||||
foreach ($posts as $post) {
|
||||
$return[] = new Tainacan_Taxonomy($post);
|
||||
}
|
||||
|
||||
// TODO: Pegar taxonomias registradas via código
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
function get_taxonomy_db_identifier($id) {
|
||||
|
|
Loading…
Reference in New Issue