In most cases, themes from developers are often filled with a ton of plugins that are coded directly into the theme. Although great and convenient, there is a major caveat of doing this…several actually:
- The theme gets bloated with code
- Your theme might have plugins you will never use or want to use
- The plugins and scripts coded in the theme may not play nice with other third party plugins
- The plugins and scripts may not be compatible with upcoming versions of WordPress
- The more scripts and code, the more chances bugs and other problems will show up
Benefits of Keeping Plugins out of Themes
- The user can choose what they want to use
- You get a much lighter theme (less code)
- More stable theme
- Much easier to update plugins than if they were coded into the theme
- Updates are left to the developers of the plugins
- If you change themes later, you don’t lose anything because the plugins stay with you with each theme you use, but if they were in the theme, you lose whatever content or functionality you had with the theme.
A List of Recommended Plugins (Although Optional)
- Advanced Text Widget – Text widget that has extensive conditional options to display content on pages, posts, specific categories etc. It supports regular HTML as well as PHP code. Use in the demo site for any widgets that needs the titles disabled, like showcase banners.
- Breadcrumbs NavXT – Adds a breadcrumb navigation showing the visitor’s path to their current location. Used in the demo site.
- Contact Form 7 – A forms plugin which the demo site is using for the Contact page
- Dynamic Widgets – Dynamic Widgets gives you full control on which pages your widgets will appear. It lets you dynamicly show or hide widgets on WordPress pages. This is used extensively in the demo site to achieve the widget positions each widget it published to on select pages.
- Simply Exclude – Provides an interface to selectively exclude/include all Taxonomies, Post Types and Users from the 4 actions used by WordPress. is_front, is_archive, is_search, is_feed. Also provides access to some of the common widgets user like tag cloud and categories listings. This is used extensively in the demo site and especially important for the Portfolio and Post Format types that Preference offers