• Skip to main content
  • Skip to primary sidebar
  • Home
  • Professional Blog
  • Contact Me

Jesse Smith, MBA

Web developer & business consultant

You are here: Home / Web Design / WordPress functionality: The thin line between theme and plugin

October 9, 2013 by Jesse Smith, MBA

WordPress functionality: The thin line between theme and plugin

Stumbled across this just now: the official WordPress guidelines for separating style from functionality.  What WordPress functionality may be incorporated into a theme, and which functions should be left to the plugin developers?

The line is tighter than you might think.  And it turns out, it is a line I have crossed.

The guidelines state in part (slightly edited for readability):

Themes must not incorporate SEO options, content sharing buttons/links, custom post-content shortcodes, or Custom Post Types; or Removing or modifying non-presentational core hooks.

Yowser! I think I’ve used every one of those functions in theme projects.  In fact, my Widgeon Starting Point incorporates a breadcrumb plugin as an included file.  I think that pretty clearly falls outside the bounds of this guideline criteria.

How did this WordPress functionality get in my theme?

It all started when I began buying professional themes on ThemeForest.  I liked them because they were more flashy than the free themes from WordPress.  I found that for less than a hundred bucks, I could set up a professional-looking website quickly.  It was great, but it taught me bad habits.

Pro themes break the rules

Professional themes are not required to follow the WordPress theme development guidelines.  Only the free themes distributed on wordpress.org are ever vetted by a committee.  And I knew this.  But it didn’t stop me from imitating the pro theme authors when it came time to create my own themes.  Because I had been using these themes, I had come to expect this functionality from a WordPress theme.  So I began to load up my themes with  breadcrumbs, and security features, and social media buttons, and custom shortcodes, and custom post types, just like the professional theme developers.

I think it’s worth noting that in their enthusiasm for incorporating functionality, many WordPress developers have committed serious errors.  Most notably, I once bought a theme that used the Tim Thumb script as an included file.  I deleted it, of course; but this illustrates the point that just because a theme is professionally designed and marketed, does not mean it is flawlessly coded.

I smell an update

Well, now that I know, I’ll be able to do something about it.

First up, I’ll release a slimmed-down version of the Widgeon Starting Point, excluding most of the above.  Will I exclude it all?  Maybe not.  The purpose of the starting point is to form the basis of client projects; and clients expect functionality.  And even though nobody likes to admit it, there are limitations to the wisdom of even the open source community.  Some plugins are very bloated, or reduce website performance, or introduce security vulnerabilities of their own.

As long as I’m not distributing my theme through the WordPress repository, I may go ahead and continue to gently break some of the rules.  Sometimes, it’s the easiest way to integrate WordPress functionality into a website design project.

Filed Under: Web Design Tagged With: plugin, theme, WordPress

Primary Sidebar

Categories

  • Announcements (3)
  • Events (8)
  • Reviews (8)
  • Sales and Marketing (2)
  • Security (4)
  • Thoughts (13)
  • Tips (24)
  • Unimportant (6)
  • Web Design (19)
  • Web server administration (5)

Archives

  • October 2017
  • September 2017
  • August 2017
  • November 2016
  • August 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • June 2013
  • May 2013
  • March 2013
  • February 2013
  • December 2012
  • October 2012
  • September 2012
  • August 2012
  • May 2012
  • April 2012
  • March 2012
  • January 2012
  • November 2011
  • October 2010
  • August 2010
  • June 2010
  • April 2010

Recent Posts

  • Direct Mail Campaign Components
  • Introduction to Multi Networks for WordPress Multisite
  • How to Modify a WordPress Plugin
  • Always Changing
  • Putting the Plan in Action!

Copyright © 2026 · Workstation Pro on Genesis Framework · WordPress · Log in