Themes execute the presentation and styling of content while plugins handle content creation and functionality. Anything users will lose upon switching themes is classified as plugin territory. Here are some common examples:
- SEO options
- Non-design related meta boxes
- Resource caching - Dashboard widgets
- Custom Post Types - Custom Taxonomies
- Social media “like”, “follow” and “share” buttons Anything that falls into plugin territory must be added via a custom plugin.
You may use TGM Plugin Activation or equivalent to prompt the user to install the plugin on theme activation, but it cannot be activated without user action.