When I first began working with WordPress my approach to custom themes wasn’t much different from my approach to any single site. My first custom themes were build on WordPress but they weren’t much different from the HTML/CSS sites I had previously built using php includes. I used WordPress functions to display dynamic elements but rarely used plugins.
I’m not sure where I got this impression but I thought of plugins as cheating. It seemed much tidier to have all functionality neatly tucked away in the theme. I could customise the functionality based on my clients use-case. I prided myself on having as few plugins as possible.
My reasoning was as follows:
- Plugins can be bloated and badly written.
- They can introduce bugs and conflicts (often a result of poor namespacing).
- Sometimes their very nature requires them to incorporate edge cases that don’t pertain to the site at hand.
- They can require supplementary configuration with settings that are unneeded and unused.
- They require updates.