As mentioned in register_post_type() Codex page:
taxonomies
(array) (optional) An array of registered taxonomies likecategoryorpost_tagthat will be used with this post type. This can be used in lieu of callingregister_taxonomy_for_object_type()directly. Custom taxonomies still need to be registered withregister_taxonomy().
Default: no taxonomies
In my Custom Post Type (product) I’m also assigning two Custom Taxonomies with register_taxonomy() apart from the register_post_type(), and they are working fine. But there’s a parameter in register_post_type() called 'taxonomies' where it’s said to mention all the taxonomies in an array, but even without this I’m achieving what it’s meant to:
'taxonomies' => array( 'product_categories', 'product_tags' ),
So, I wonder what’s the purpose of this?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
To be really honest here, that is a useless parameter when used with custom taxonomies, as custom taxonomies are already registed to a custom post type when they are registered. Using the taxonomies parameter, you are re-registering a custom taxonomy to the custom post type
As stated by the codex, the taxonomies parameter is used to register build in taxonomies to custom post types, as build in taxonomies are registered to the build in post type post.
Just to close of, if you register a taxonomy to a post type, set the taxonomies parameter and use register_taxonomy_for_object_type(), you are doing the same job three times 🙂
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0