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:
- Manually set global $post vars with an ID, in order to use template tags
- How to not allow users to create new tags, but allow to them to use existing ones
- How to export comments in WordPress?
- How can I call a function from one plugin within another plugin?
- Gutenberg disallow certain custom blocks but keep all core blocks?
- Limit access to posts/pages by user roles
- Remove Google Fonts Which Are (Probably) Added By Plugins
- Common functionality between my own plugins
- WP showing “warning: call_user_func_array()”, What to do?
- Adding a text domain to every __(), _e() and __n() gettext call without a plan to create own translations
- Declare a function before plugin does on the theme functions.php file
- Editor access to plugin settings
- Generate Advanced Custom Fields box in custom admin menu page
- Saving Plugin settings to the database
- Shortcode display outside the div
- Custom Widget outputs the input but doesn’t save anything inside the textarea
- Use functionality of 2 wordpress plugins
- Can wp_script_is used in pluginA check if a script is being enqueued/registered from pluginB?
- Set WordPress Featured Image For All Post Slugs Matching Image File Name in Specified Directory
- jQuery Plugin to use WordPress functions in AJAX request
- Where to place custom functions?
- I have functions in my wordpress plugin. How do I get them to work for me?
- AJAX button run function
- Change wordpress current_time function to different timezone
- How to override a plugin function wrapped in a class?
- Edit Yoast SEO breadcrumbs output [closed]
- Display post lists in 2nd paragraph
- Using a post-signup hook to get user details
- Restrict media upload size by format
- How to display custom sidebar in wordpress 5.5.2
- creating html reusable blocks via shortcodes
- Replacing a plugin function with a custom renamed function doesn’t work
- Fatal error: Call to undefined function cmsms_theme_page_layout_scheme()
- Disqus deleted comments are syncing with wordpress but active comments do not
- WordPress get_avatar function not correct working
- How to create an option page for this simple plugin
- What is @Action in WordPress?
- Improving the perfomance of a plugin action
- the_tags : can we insert a class
- WordPress checkbox and Illegal string offset
- Undefined index: action plugin problem
- PHP script from functions php is loaded via admin-ajax to div…and the result is 0, not the desired content
- Adding class to last list item? Not WP generated
- I changed .live() to .on() but change is not reflected on the server
- wp_enqueue_scripts
- How to make a dynamic css class whose name changes every visit to confuse scraper
- How can I fetch data from another website to my wordpress website with mysql database
- Send email with list of active plugins upon activation/deactivation
- Using custom fields for image alt and title
- Where Should i write the code for wordpress ajax voting?
- Set up functions to be overridden without using function_exists() by short-circuiting them?
- How do I convert my WordPress website to be domain agnostic?
- how to change wp-admin url using function file
- Add action to custom Function
- Show media-uploads to all users
- Help with a function in a widget
- how can authors to define custom pages?
- Adding a Tag Parameter / Filter to My Shortcode
- How do I create pages within a WordPress post?
- How to upload large media file in chunks, without any plugin?
- WordPress Custom Hook with Class method
- Allow a particular user to access a particular plugin?
- WP Function does not trigger on Webhook API Call
- Why do I need to reload the page for WordPress to see the new custom field added with jQuery
- Cookie value changes back to previous value after changing
- RSS Feed on WordPress showing code (hypertext) in articles titles
- Alternative Hook to the_content for Changing Background Color
- Unpublished Pages Failing To Appear On Custom Path
- add a hook of Woocommerce to a plugin but it only shows and doesn’t function properly
- Post source link plugin – small modification
- How to add specific script to WordPress webpage that will working with user input and databases
- Hide Plugin Custom Post Type Menu Link
- How to create algorithm for ordering posts in WordPress?
- Add external javascript to post template
- Block plugin update possibilities (but not by hiding notifications)
- Execute function activate/deactivate plugin in specific pages
- Securing langugae folder
- Plugin function in child theme
- Call function with button and return response
- Return function results within shortcode
- Soflyy WP All Import Custom File Download Issue
- Update (a function) post’s featured image as soon as $image_url changes
- Why isn’t my plugin seeing other classes?
- It possible to implement an adhoc php web application with wordpress?
- How to add submenu to WordPress plugin in the same Directory of main Plugin?
- making a glossary with wordpress
- Contact Form 7: custom validation [closed]
- functions.php conditional output for a single plugin
- date function not correctly returning date
- Single dash converted to double dash
- How use Dynamic hyperlink on each wordpress post?
- How to declare this function correctly?
- Can’t modify plugin function
- PHP if url extension action=discussion condition use [closed]
- Make plugin admin page visible to other roles
- Sort posts by Date (DESC) and by ACF: active_inactive (ASC)
- wp_enqueue_script doesn’t load JS in plugin
- Read page- or post-content across different builder-plugins
- Remove posts that start with similar words (like a delete duplicate posts plugin)
- How to get next day date of a specific day