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:
- How to make plugin required in a wp theme without using php conditional statements when calling an individual function from that plugin?
- How do I cleanly override a plugin’s CSS with a child theme?
- Is it possible to stop selected plugins from loading on certain template pages?
- Hide wordpress plugins from list
- Adding a text domain to every __(), _e() and __n() gettext call without a plan to create own translations
- Function to activate WordPress theme inside a plugin
- Seeking clarification on page request life-cycle
- Which functions in theme or plugin load first
- Get info (url) from already enqueued styles
- resize only height using wp_get_image_editor
- Autoload via composer in plugin interference
- Workflow and best practice for documentation [closed]
- Is there a quick way to inject i18n domain into theme/plugin files?
- WordPress language switcher
- Showing Co-Authors on post page
- WP theme with Backbone
- Translating plugin inside the theme [closed]
- Editing Theme to apply Co-Authors Plus
- Include Max mega menu Plugin into theme
- How to integrate plugin in WordPress theme
- How to include plugin without activation?
- How do you remove plugin edit option?
- WordPress logo upload option in theme panel
- Custom Taxonomy Tag Search
- wordpress theme backend admin only
- Check if we’re viewing an event
- Menus, but not by theme location
- how to load the language file in plugin?
- How to get current post user id
- Events Made Easy Plugin – Duplicate Title Tags
- Different UI in WordPress
- What is the correct way to update both WP/plugins/themes without breaking the site?
- Redux Framework has an embedded demo. Click here to activate the sample config file
- The problem with WordPress Importer
- Why does my functions.php cause white-screen and media-library issues?
- how to give a user a role?
- Display post lists in 2nd paragraph
- Making sure that a plugin’s scripts and stylesheets are included for dynamicaly loaded content
- How can I position ShareThis buttons manually when using the plug-in? [closed]
- Plugin can not display in my custom theme
- How to use get_template part in the plugin?
- Overriding Parent Theme… will cause plugins failure?
- WordPress premium theme development [duplicate]
- How can I show a different theme for admin users? WP 3.8+
- How to show the number of website visitors in my theme
- How to write “alt” tag in image for wordpress code?
- Shortcode Attributes to Return different $_POST
- What form should the $query media query array have for an Elementor page builder function? [closed]
- is_rtl returns false while it should return true
- Include Minit plugin in theme [closed]
- Managing wordpress Themes & plugins for multisite
- Set up functions to be overridden without using function_exists() by short-circuiting them?
- WordPress custom post type image in RSS
- Inserting Plugins Into Blank Space of Externally Designed WordPress Theme
- display unique post per category
- Polldaddy doesn’t show up on own theme
- How to add an admin alert for missing plugins
- Is there a way to insert multiple images into a post at the same time without using a gallery?
- Is there a way to keep youtube videos from displaying on home page, and display only on single posts?
- Yoast SEO Plug In and my Theme duplicating code. Need some feedback on what to do? [closed]
- Strange Behavior on New Theme Points to Idiocy
- Janrain/Simple Modal under Redirected Domain
- Warning: Attempt to read property “ID” on null in C:\xampp\htdocs\Nnamdi1\wp-content\plugins\elementor\core\base\document.php on line 250 [closed]
- How to get authors who have added the post in the specific custom post type
- woocommerce remove coupon link does not work
- require_once not working in plugin wordpress
- How to override any plugin file in the child theme
- how to display recent post by category on home page
- Unpublished Pages Failing To Appear On Custom Path
- How to Add call button on a featured image in a wpsite? check the slap king image, there are two buttons on the featured image
- WordPress hierarchy clarification, does post_type_archive take precedence over taxonomy-term archive?
- How can I find related learndash course id from woocommerce product object?
- how to change a static testimonials into dynamic
- Rename a folder via HTML POST request
- How to get a post views count using ‘WordPress popular posts’ plugin
- Using Shortcode Result In Custom HTML Block (Using Google Sheet JQuery Result As NumScroller data-max)
- Disqus comment system not show
- How to use plugin’s shortcode in custom design? [closed]
- WordPress panel is not loading after plugin activated with error: HTTP ERROR 500
- Remove action added in plugin class from theme
- Can you develop themes and plugins while using the hosting services BlueHost? [closed]
- Product catalogue in WordPress
- Contact form function should be in functions.php or in a plugin file?
- how to add custom css at top above all css file for specific url
- How to add wordpress plugins in along with my standalone theme
- Showing ads in the specific category and its sub-categories
- How can I add different menus (different style menu) on each page?
- Site is setup statically – how to make it content managable?
- How can I make a website with dynamic features with wordpress?
- How to add image for custom taxonomy
- Javascript as Jquery Function Call?
- Detect if you’re in the “Frontend Editor” mode in Visual Composer WordPress [closed]
- Can anyone tell some online tuts for plugin development for beginner? [closed]
- Email Masking in widget
- How to escape html code?
- Ajax button “Load more” is not loading correct language version posts for logged out users
- How to code a wordpress page properly? Dashboard or unique Theme files or alternative?
- how to make wordpress remember my choice
- Meta box not displaying on the plugin page
- Getting error when accessing Customizer Page