If you want the theme to be independent from the CPT’s, place the CPT’s as plugin(s). If the CPTs go with the theme, functions.php sounds like the perfect spot for them.
If you add them as plugins, you should group them in one or more plugins depending on functionality, not on post type.
Related Posts:
- The function called on the wp head hook becomes null
- adding dynamic/multiple slug values in ‘option_none_value’
- Sharing varible between two add_actions
- Hide Plugin Custom Post Type Menu Link
- How to create algorithm for ordering posts in WordPress?
- Submitting form to PHP
- ACF Fields are not showing up on Homepage
- Adding discount functionality to the cart
- How to assign a specific service to a specific provider based on location
- Precheck fields when I add a new post
- Conditional Homepage for logged in user
- How to detect 404 url and make this link underline or change background color?
- Make modification of add_to_cart button specific to single page
- front end editor creation for Restropress plug in – displaying information from a WP admin area, on a different URL
- Get Shortcode output to database for static post_content
- Search in WordPress
- working code, not working – Plugin Dev
- Easiest way to load/fire a handful of functions, IF checkbox is checked?
- Use buddypress function outside of plugin
- Add external javascript to post template
- How use get_plugin_updates() function?
- how override a define
- how can export data in excel file custom plugin
- Block plugin update possibilities (but not by hiding notifications)
- Execute function activate/deactivate plugin in specific pages
- How to Unhook actions/filters in within Class in plugin
- Securing langugae folder
- Plugin function in child theme
- post id or permalink auto-incrementing number and reset everyday
- WPML – Hook when language is switched (change user language)
- Call function with button and return response
- Use action, filter, or hook to append HTML to WordPress plugin function
- Modify function output in a plugin
- Change custom rewrite rule when permalink is updated/changed
- How to disable/enable a plugin at a specific time
- Override filter variable not working
- WP_CRON issue with UTC and local time
- Is admin section completely customizable in terms of styling?
- Return function results within shortcode
- Configuring default woo commerce login with modal popup
- How to wrap image tag into div for post only?
- How to make the first letter of a post title uppercase, in a plugin?
- Update User Meta Via Ajax
- Save Post Permalink In .txt File
- Compare Ajax Data Results
- EventON – Dequeue Styles
- How can I make the search bar in my wordpress site search all of the pages rather than just the blog posts?
- Soflyy WP All Import Custom File Download Issue
- Dynamically Modify s2member Options
- Get a Taxonomy values in an array
- register_activation_hook doesn’t fire at all
- Update (a function) post’s featured image as soon as $image_url changes
- Why is WP template_include overwritting all templates rather than specified page?
- How To Add Code To WP Without Plugin or Functions
- Migrating custom php we wrote from functions.php into a site-specific plugin
- Nested DIV’s across functions in PHP, do not seem to work
- My ajax request don´t work and return 0
- Shows warning when enable “wp_gallery_custom_links” plugin with Themify Builder
- WordPress environment not loading properly
- How can I add a custom checkbox / radio button on the admin theme options to display a CSS or other?
- How to delete posts older than one year with post meta, post attachments and files?
- WordPress Add advertising ads befor and after content with periority [closed]
- Function in my plugin is called twice
- Disqus comments count taking long to update
- Searched & tried a lot: Is it Possible to Eliminate Render Blocking Manually
- plugin not hooking to my custom hook
- Populate select option with JSON file
- Unexpected plugin_dir_path Output
- How to Call Function From Separate WordPress Install on Same Server?
- Home page letters
- Place content inside the Post Loop
- Every time I use wp_get_current_user() my plugin breaks
- Can plugin automatically update if i hide the update notification?
- How to echo a plugin’s function into a template?
- How to replace native comment_count with Comments Evolved aggregate count
- how to repeat taxonomy in different places on wordpress
- Find all strings between an enclosing shortcode
- Why isn’t my plugin seeing other classes?
- Follow author on muti-user WordPress site
- Code fails in plugin file but works in functions.php
- how to create table during plugin installation in side a class
- Conditional required fields for WordPress Contact Form 7
- Hook into install email
- wordpress Shortocode running twice?
- Wp Ecommerce Reposition Product Page Product Thumbnail Image
- It possible to implement an adhoc php web application with wordpress?
- AJAX login without a plugin does not work. when add a action to function.php
- Add 2 links in between the navigation using the Breadcrumb Navxt plugin hook
- CPU Overloading due to some hooks
- WooCommerce Checkout – Validate User Role
- Woocommerce change image based on a single attribute
- How to disable hover zoom on woocommerce. None of the common methods work
- Import posts from a different database with the same old id
- Why nested REPLY not working in WP Comments?
- How to get next day date of a specific day
- Possible to overwrite load_template function in plugin using functions.php
- Simple ajax request with Vanilla JS keeps given 400 Bad Request
- How to access a function declared in child theme’s functions file in a plugin file?
- Re-use date format on different template
- Elementor: Exclude product categories when using “Source: Current Query”