It is standard practice for us to create custom plugins for our clients’ WordPress sites. We go the custom route (rather than plopping them into the functions.php file) for 3 reasons:
- Portability – you can change themes and not lose the custom functionality – plus you can switch to a default theme to debug problems and not break everything
- Bloat – functions.php files can quickly become unwieldily
- One slip-up in functions.php and your site greets users with the White Screen of Death.
wplift has a great write-up on when to use functions.php (rarely) and when you should create a custom plugin (always).
So there is a little insight into our development approach to adding custom functionality to your site.