If you put your functionality in a plugin then it can be reused across many themes.
E.g. a plugin that adds font options to the customizer would be useful for lots of themes, but if it was directly built into every single theme and you needed to make a change, you would have to release updates for every single theme, then make sure there were no version differences and they were all kept up to date. That isn’t an issue with a plugin.
Additionally, themes aren’t intended to host functionality such as post types etc, only templates and visuals. Almost all themes break this advice though, but it’s still useful. E.g functionality built into a theme locks you into that theme and is lost when you switch.
Related Posts:
- Between functions.php (theme), widgets, and plugins, which is loaded first?
- Is there any sort of theme dependency management?
- Can I make plugins required?
- Add Plugins to WordPress Theme
- wp_enqueue_scripts not working in custom theme
- What is the correct way for a theme to support plugin UIs?
- How to call “page specific menu items” in template [closed]
- Create WooCommerce Product Category Programmatically
- Can we completely remove the WordPress Sitemaps (WordPress 5.5)?
- WordPress tips for speed and performance [closed]
- How to access options of Redux framework in front end
- Integrating plugins in themes
- login to wordpress with Get variables instead of Post
- Should I use RIPS tool to test my themes and plugins?
- Translate third party plugin and save translation files in custom theme
- How to Build a Movie Library in WordPress 3.x
- How do I future proof my older WordPress theme?
- register_theme_directory somehow “fails” when folder is outside of WP-Folder
- Display future posts?
- Having separate plugins and themes folder for multi-site setup
- unzip a folder on specific location and delete the zip file
- gallery option is not available in media upload box in costum theme option page
- How to limit WordPress pages during updates?
- Why are some of my thumbnails not being generated?
- Built in audio player?
- Override the filter from plugin in child theme
- Network: retrieve a list of latest posts
- WooCommerce get_price returning wrong price when used via ajax
- Open Post Thumbnail in New Child Theme File in WordPress
- How to use get_theme_mod in gutenberg editor wordpress?
- how to add a button next to the wordpress view button?
- Best place for short bio,image and button [closed]
- What are the specifics of WordPress development I need to know? [closed]
- How to create a code editor for my plugin .?
- How to show only next post pagination link using wp_link_pages()
- wp_footer hook only working on homepage not in other pages
- Jquery NoConflict Problem
- Redirect to another page using contact form 7? [closed]
- multiple language website navigation menu suggestion
- Add SideBar/Widgets Just Below the Post
- Add filter on html tags,attributes on specific function in wordpress
- plugins not working in custom theme
- Release the plugin in the WordPress repository where redux is used
- How to use the CSS of the WordPress core in the development of my administration page?
- Woocommerce singe product custom gallery output works just on the first slide
- Remove Pagination for Product Category Pages WooCommerce
- How can I use my custom wordpress theme on two websites? [closed]
- Widget for specific category
- why need theme,if page builder is there in wordpress [closed]
- Visual Composer: Where do I find the source code of a custom element?
- WordPress API functions not working at AJAX functions.php call
- Don’t load the theme for a page FROM a plugin EDITED
- Hardcode a form in Contact Form 7 [closed]
- how to design change in woocommerce cart page and all other page also by theme? [closed]
- How do you create a re-useable HTML fragment in wordpress
- WordPress plugin with its own “site”/theme
- Override methods in Yoast SEO breadcrumb class
- Identify current wordpress theme
- Update WordPress Theme System
- Removing the custom_image_header from wp_head
- Code for unique user visit count on every page WordPress
- Xamp installed local wordpress not allowing to publish or install plugin
- Widgets are not displaying in the admin panel
- Newbie problem with adding include wp_footer
- Content-Security-Policy implementation with WordPress W3Total Cache plugin installed
- woocommerce: Customize email with item total count
- Child theme modifications not showing up
- Conditional Homepage for logged in user
- How can I see $post object in frontend from functions.php?
- when i activate my WordPress plugin cannot see customizer options or preview
- Showing different js file for different theme in wordpress customizer api
- When the user entered an unauthorized url redirect to login page
- How to wrap image tag into div for post only?
- Add section (add_settings_section) to a custom page (add_submenu_page) not working
- Show content from plugin on index
- Help Code Review – I need to write on .htaccess file from theme’s function.php
- Where do the section input fields values are stored in database
- Get plugin to background of page
- How to display the Facebook like count in WordPress theme [closed]
- How to increase script execution time at my server
- Why the output of an image gallery plugin is not displayed into a page of my custom theme?
- Convert HTML5/CSS3 site to WordPress Theme (need a lot of plugins) or just use the API?
- twitter widget loads properly in all themes except my own theme?
- Plugin’s required JS not being inserted in my theme
- How to show post attachment image
- Can anyone tell me why I can’t edit a plugin when it is installed without having to re-install?
- What is the Object for WP_Error Class?
- Active Plugins for current blog in WP Multisite Network? [duplicate]
- Disqus plugin outputs script as literal text
- Replace all media (images)
- Apostrophes replaced by '
- Ajax button “Load more” is not loading correct language version posts for logged out users
- I want to include My theme file (testing.php) to inside my plugin folder (myplugin/mypugin.php)
- How to Enfroce Domain Licensing Limits? [closed]
- Override plugin constant using a theme
- Meta box not displaying on the plugin page
- Getting error when accessing Customizer Page
- WordPress search every time shows no search found even data exists
- Composer dependency
- Gutenberg Blocks and Elementor