Search code examples
wordpresstaxonomy

Add taxonomy to already registered custom post type


I want to add taxonomy to already registered custom post type. Is it possible or I have to delete and create that custom post type again??

 add_action('init', 'create_requirement');

function create_requirement() {
 register_post_type('requirement', array(
    'labels' => array(
        'name'                  => __('Requirements','wpestate'),
        'singular_name'         => __('Requirement','wpestate'),
        'add_new'               => __('Add New Requirement','wpestate'),
        'add_new_item'          => __('Add Requirement','wpestate'),
        'edit'                  => __('Edit','wpestate'),
        'edit_item'             => __('Edit Requirement','wpestate'),
        'new_item'              => __('New Requirement','wpestate'),
        'view'                  => __('View','wpestate'),
        'view_item'             => __('View Requirement','wpestate'),
        'search_items'          => __('Search Requirement','wpestate'),
        'not_found'             => __('No Requirements found','wpestate'),
        'not_found_in_trash'    => __('No Requirements found in Trash','wpestate'),
        'parent'                => __('Parent Property','wpestate')
    ),
    'public' => true,
    'has_archive' => true,
    'rewrite' => array('slug' => 'requirements'),
    'supports' => array('title', 'editor', 'thumbnail', 'comments','tags'),
    'can_export' => true,
    'register_meta_box_cb' => 'add_property_metaboxes',
    'menu_icon'=>get_template_directory_uri().'/images/properties.png'
     )
   );


register_taxonomy('post_tag', 'estate_requirement', array(
'labels' => array(
    'name'              => __('Tags','wpestate'),
    'add_new_item'      => __('Add New Requirement Tag','wpestate'),
    'new_item_name'     => __('New Requirement Tag','wpestate')
  ),
  'hierarchical' => true,
  'query_var' => true,
   'rewrite' => true
  )
 );


 // add custom taxonomy
 register_taxonomy('req_category', 'estate_requirement', array(
 'labels' => array(
    'name'              => __('Requirement Categories','wpestate'),
    'add_new_item'      => __('Add New Requirement Category','wpestate'),
    'new_item_name'     => __('New Requirement Category','wpestate')
 ),
  'hierarchical' => true,
 'query_var' => true,
 'rewrite' => true
 )
 );


// add custom taxonomy
register_taxonomy('req_action_category', 'estate_requirement', array(
'labels' => array(
    'name'              => __('Requirement Action','wpestate'),
    'add_new_item'      => __('Add New Requirement Action','wpestate'),
    'new_item_name'     => __('New Requirement Action','wpestate')
),
'hierarchical' => true,
'query_var' => true,
'rewrite' => true
)

) ;
}

I have added req_category and req_action_category but it's not working...


Solution

  • You have two problems here. First, you cannot create a taxonomy post_tag. post_tag is a reserved name and is actually used for the build in taxonomy post_tag. Secondly, your custom post type is called requirement, yet you add your taxonomies to a post type called estate_requirement.

    If you fix that two problems, you should be fine