When does a WordPress site need custom development?
Less often than agencies suggest, and for different reasons than most people expect. Custom code earns its place when your content has a shape no plugin models well, or when a feature is specific to how your business works. Everything else should be configured or installed, and some features should not live in WordPress at all.
- Configure first when the block editor, your theme's settings or the Site Editor can already do it
- Install a plugin when a well-maintained one does the whole job and you can live with how it works
- Build custom for content types, fields and blocks that are unique to your business, kept in a small plugin of your own
- Keep it out of WordPress when the feature is really an app, a customer portal or a multi-system workflow
What changed since this was first written
This post began in 2023 as a list of benefits: a unique design, better functionality, stronger branding, more scalability. Every one of those is true of any well-built website, so the list could not help anyone decide whether their WordPress site needed custom work or not.
This version answers that decision instead. It sorts features into four routes, says what is worth building, explains where custom code should live so it survives a theme change, and names the features that belong outside WordPress. Whether to build a custom site rather than use a template at all is covered in custom website design vs a template, and whether to use WordPress at all in choosing between WordPress, Joomla and Drupal.
Four routes for any feature on a WordPress site
Every feature request lands on one of four routes. The route decides who maintains the feature and what happens to it later, which matters more than how it looks on launch day.
| Route | Fits when | Who maintains it | Survives a theme change | Watch for |
|---|---|---|---|---|
| Configure | Core blocks, patterns and theme settings already cover it | WordPress core and your theme author | Content does; theme-specific styling may not | Settings that only exist in one theme's options panel |
| Install a plugin | One maintained plugin does the whole job | The plugin author | Yes | Abandoned plugins, overlapping plugins, data stored in a format only that plugin reads |
| Build custom | The content or rule is specific to your business | You, or whoever you hire | Yes, if it lives in a plugin | Code put in the theme's functions.php, which disappears with the theme |
| Keep it outside | It needs logins, heavy logic or several connected systems | The app or automation platform | Not affected | A second system to run; the site then links or sends data to it |
Most business sites need very little in the third row. Before paying for a build, check what the best WordPress plugins for a business website already cover, one job at a time.
What is actually worth building custom
Three kinds of custom work pay for themselves on a typical business site. They share one trait: they model something about your business that a general-purpose plugin cannot know.
- Custom post types and fields. If you publish case studies, team profiles, locations, courses or products with a fixed set of details, a dedicated content type with its own fields keeps every entry consistent and lets the site list, filter and link them properly.
- Custom blocks. A block for the layout your editors repeat, such as a pricing row or a comparison panel, stops people rebuilding it by hand and getting it slightly wrong. The WordPress Block Editor Handbook scaffolds one with a single command,
npx @wordpress/create-block@latest, which generates a block as its own plugin. - A small site plugin for business rules. Rules such as who can see what, how an enquiry is labelled or which fields a form passes on belong in one plugin you own, documented and version-controlled, not scattered across snippets.
Design on its own is rarely a reason for custom code any more. Block themes are styled through a theme.json file, which the WordPress Theme Handbook calls "a foundational piece of block theming", and a child theme or a style variation covers most branding work.
Where custom code should live
Where code is put decides whether it survives the next redesign, and this is the most common way custom WordPress work goes wrong. The WordPress developer handbooks are clear on the main points, checked on 31 October 2026.
| Custom code | Put it in | Why |
|---|---|---|
| Content types, fields, business rules | A plugin | The Plugin Handbook recommends custom post types go in a plugin rather than a theme, so content stays portable if the theme changes |
| Changes to a bought or free theme | A child theme | A child theme modifies a parent theme without editing its code, so the parent can still be updated |
| Colours, typography, spacing on a block theme | theme.json or a style variation |
Settings live in one file instead of hundreds of lines of CSS |
| Anything in WordPress core files | Nowhere | The Plugin Handbook's "cardinal rule" is not to touch core, because every update overwrites those files |
The practical test is simple. Ask what happens to each custom feature if you switch themes next year: if the answer is "it vanishes", it is in the wrong place. When you hire someone, how to vet a WordPress developer lists the questions that reveal this before you sign.
When the feature does not belong in WordPress
Some requests start as "can the website do this?" and turn out to be a separate system. WordPress can be stretched to do them, but each one adds plugins, slows the site and ties a business process to a content tool.
- Customer portals and dashboards with logins, account data and permissions are applications. AI web and app development builds them as their own product, with the website linking in.
- Multi-step workflows, such as routing an enquiry, creating a deal, booking a call and sending reminders, belong in workflow automation built on Zapier, Make or n8n, with the WordPress form as the trigger.
- Contact records and follow-up belong in a CRM. How to connect WordPress to your CRM covers the handoff, and CRM setup and management covers the CRM itself, GoHighLevel first.
Keeping these outside also makes the website cheaper to change. A redesign then touches only the site, while the portal, the automations and the CRM keep running underneath it.
What to put in a custom WordPress brief
A short brief gets a more accurate quote than a long list of pages. For each feature you think needs custom work, write down:
- What the feature does, in one sentence, and who uses it: visitors, editors or staff
- Which of the four routes you expect, so a developer has to explain if they disagree
- What data it creates or reads, and whether any of it must reach another system
- Who will maintain it after launch, and how updates will be tested
- What should happen to it if the theme is ever replaced
Work is quoted per project, so the brief is also what keeps two quotes comparable. What a WordPress website really costs explains which items usually move the number, and our answers to common buyer questions cover what we need from you to start and who owns what we build.
Where AI fits in custom WordPress work
AI changes the cost of writing code more than the decision about what to build. Assistants can draft a custom post type or a block quickly, but the code still needs review, a home in the right plugin and someone responsible for it after launch.
The more useful AI features usually sit beside WordPress rather than inside it: an assistant that answers visitor questions, or a step that summarises each enquiry before it reaches the CRM. Those are built as AI automation connected to the site, so they keep working whatever theme the site runs.
Common questions
Is custom WordPress development worth it for a small business?
Usually only for a few specific features. Most small business sites are best served by a good theme and a handful of maintained plugins, with custom work limited to content types or blocks that are unique to the business.
Should custom code go in functions.php or a plugin?
A plugin, for anything that is not purely about how the theme looks. Code in a theme's functions.php disappears when the theme changes, and the WordPress Plugin Handbook recommends registering custom post types in a plugin for exactly that reason.
What is the difference between a child theme and a custom theme?
A child theme changes an existing parent theme without editing its code, so the parent can still receive updates. A custom theme is built from scratch, which gives full control but means you maintain every template yourself.
Can WordPress run a customer portal?
It can, with membership and account plugins, but a portal with logins, account data and permissions is usually better built as its own application. The website then links to it, and neither has to be rebuilt when the other changes.
How do I know if a feature needs custom code?
Check the four routes in order. If the block editor or your theme can do it, configure it; if one maintained plugin does the whole job, install it; build custom only when the feature is specific to your business, and move it outside WordPress if it needs logins or several connected systems.


