The plugin CPTonomies is designed to exactly this. There is no built-in WordPress way to do this.
I’ve never tried to make WordPress do this, but this is the plugin I’ve seen used by others trying to achieve this functionality. You might also try Posts 2 Posts, which creates relationships between different post types instead of doubling a post type title as a taxonomy.
Related Posts:
- What process do you use for WordPress development? [closed]
- How do I create a custom role capability?
- What is the advantage of using wp_mail?
- Export data as CSV in back end with proper HTTP headers
- How to integrate a PHP webmail script into the backend of WordPress?
- Calling the widget id of a mult-instance widget from inside the widget?
- Do I need to call do_action in my plugin?
- WooCommerce get Shipping Class of product from either the product id or the order after order is completed
- Dequeue script, but still use wp_localize_script to pass vars
- I can’t find where a hook is being defined in a plugin – Easy Digital Downloads
- Can I add pages to my custom menu via script?
- Replacing WordPress menu functionality with a plugin
- Programmatically Selecting Theme Based on URL
- Save user-specific options in WordPress admin
- Why is print_r returning $classObj->userObj in several places on site
- Is it possible to load plugin from console with core ?
- use __($str) to translate strings (symfony/twig)
- Plugin development: is adding empty index.php files necessary?
- Plugin base URL
- Database for development
- Customize multisite site creation with user data
- Adding plugin settings link upon activation
- How to create multiple Gutenberg blocks in one plugin
- How to disable reCaptcha v3 except on Contact Form 7 pages?
- Fetching the value of forms in WordPress AJAX
- Proper way to run wp_query from inside a plugin
- Buddypress function and global $bp question
- Custom plugin: Loop through taxonomy types and update columns for all types?
- How to add setting section in custom post type [closed]
- Get Current Menu Location inside Nav_Walker
- Append country to ‘pretty’ url but serve same page
- Maximum lifetime for nonce
- How to Display my HTML form in my Custom Plugin?
- Where to add hooks in a class
- Insert terms for custom taxonomy on plugin activation, or each page load (init hook)
- Adding a brand column to WooCommerce Products
- Custom GET Parameters In Plugin’s Admin Page
- Adding option to Gallery shortcode
- WordPress Search filter to remove possible script injections
- Adding rewrite rule dynamically
- Incorporate small angular feature in my wordpress site
- Bootstrap doesn’t work on admin menu page-How to override wp-admin style?
- Use just a shortcode from another page
- How can I avoid conflicts between plugin and theme?
- How to control an elements classes from multiple Gutenberg sidebar controls?
- WordPress class, using add_action to call member function does not work
- random code at the end of file after plugin upload
- How Can I add Fields in wp-option table?
- Where do I put my add_action(… and add_filter(… and do I need to remove them?
- $wpdb->prepare with LIKE and sprintf
- ajax recursive calls on wordpress returning answers outsite the function scope
- Why in this archive page that call query_posts() function show only the last 10 posts?
- WordPress pages are not published due to External database connection with WPDB class
- Quasi-custom API Call Plugin
- How can I show posts for a single category?
- Show content without a post
- WP ajax requests not stacking?
- In wordpress plugin wp_signon shows error
- How to find where an object first instantiatiation
- Is it possible to load the css just on my plugin admin page?
- Problem with autoloader and namespaces
- AJAX call returns ‘testtest0’ instead of ‘test’ – why?
- Get audio metadata on file upload
- Clean way to initialize plugin in newly-added site when plugin has been network activated?
- wp_insert_post generated mixed permalinks
- Adjust query on single
- Is there any way to pass messages from a script to a redirect target in a hidden fashion?
- What should I pass for $needed_dirs when calling _unzip_file_pclzip (aka PclZip)?
- Custom Path for a Plugin
- Load specific page when a custom URL is hit
- Trigger function on Remove block or add new block in Gutenberg JavaScript
- WPGut – Updating failed and shortcode?
- Trying to rename a file upload as the hash of file content on wordpress
- Getting products information, in woocommerce based on products ID
- How the add_action is included in the plugin development
- Fatal error: Uncaught Error: Using $this when not in object context
- How can I measure CPU and RAM used by my theme or plugin
- want to confirm popup with “Yes” and “No” button when user click on add to cart
- do I need to sanitize a shortcode’s function input?
- Email content as comment
- WordPress use template
- Warning: Illegal string offset – on homepage
- Modify search form with plugin
- Organising and completing posts (mark as read and hide)
- Query only title/field/featured media of posts [closed]
- To remove rendering of menus and header, plugin or theme?
- When using an options array the Settings API isn’t creating the database record
- Displaying External Data – Not Posts
- the correct way to use options from settings page [closed]
- On one of my sites a file is shown as 404 but the file IS there
- I want to add post meta for picture thum during submit for revision
- How to synchronize an e-commerce site and a pharmacy management software?
- woocommerce features to add product along with link
- Extend WP_List_Table class – Edit wp_usermeta – WPPB.me Boilerplate – Action error
- What’s wrong in the WordPress Meta Box Generator code?
- add category id to option name when adding an option on edit_category
- esc_url, esc_url_raw or sanitize_url?
- React Plugin Settings Page Localization
- Is it within WordPress guidelines to update another plugin’s database fields from my own plugin? [closed]
- Block Development: hamburger module throwing error in save function