A sure sign your site’s structure has outgrown it: adding a new project means duplicating an old project page, deleting the photos, retyping the suburb and the job type, hoping you didn’t break the layout, and then manually adding a link to it on the Projects page.
That’s a job for a custom post type. It sounds technical. The idea is simple, and once it’s set up, it makes adding content faster and harder to get wrong.
Pages, posts and everything else
Out of the box, WordPress gives you two main types of content:
- Pages for things that sit still: Home, About, Services, Contact.
- Posts for things in date order: blog articles and news.
A custom post type is a third (or fourth, or fifth) kind of content you define yourself, with its own section in the dashboard. Instead of squeezing your projects into blog posts or one-off pages, you get a “Projects” menu with an “Add New Project” button.
Each type can have its own fields (the specific bits of information every entry needs) and its own template (the layout used to display every entry). You fill in the fields, the template handles the design.
Examples that make sense for small businesses
| Content type | Typical fields | Where it shows up |
|---|---|---|
| Projects or case studies | Suburb, job type, completion date, gallery, short description | Projects page, filtered by type, plus “recent work” on service pages |
| Team members | Name, role, photo, qualifications, short bio, booking link | Team page, plus the right practitioner on each service page |
| Properties or listings | Price, bedrooms, location, features, gallery, status | Listings page with filters, homepage “featured” section |
| Events or workshops | Date, time, venue, price, booking link | Upcoming events list that hides past events automatically |
| Locations or branches | Address, phone, hours, map, staff at that location | Locations page, footer, each location’s own page |
| Products that aren’t sold online | Specs, downloads, images, enquiry button | Product range pages for a supplier or manufacturer |
| Testimonials | Quote, name, suburb, service used | Sliders or grids across the site, filtered by service |
The common thread: you have several items of the same kind, they share the same structure, and you want them displayed in more than one place.
Signs you need one
- You copy and paste a page layout every time you add a new item.
- The same information (say, a staff member’s photo and bio) appears in several places and you have to update each one by hand.
- You want visitors to filter or sort things: projects by suburb, events by month, listings by price.
- Different people add content, and you want them filling in a form rather than editing a page design.
- You want things to happen automatically, like past events disappearing or the latest three projects showing on the homepage.
Signs you don’t
- You’ve got three team members and it’s rarely going to change. A nicely designed Team page is fine.
- The items are all genuinely different and don’t share a structure.
- You’re only adding something once a year. The setup cost won’t pay back.
Our article on how many pages a small business website needs helps if you’re still working out the overall structure.
The tools that make it work
WordPress can register custom post types in code. On client sites we use one of two plugins instead, because they give us an admin screen to manage it and give you a clean editing form.
ACF (Advanced Custom Fields)
ACF is the long-standing tool for adding fields. Since version 6.1, it can also register custom post types and taxonomies, in both the free and Pro versions, so you don’t need a separate plugin for that part.
The free version covers text, number, image, date, link and select fields. Pro adds repeaters (a list of things inside an entry, like several qualifications per staff member), galleries and flexible layouts.
ACF is a good choice when you need a few tidy content types and the display is handled by Elementor Pro.
JetEngine
JetEngine from Crocoblock is a paid plugin that does all of that and goes further: post types, field groups, relationships between types (link a practitioner to the services they offer and the clinic they work at), custom queries, front-end filters, and its own listing templates built in Elementor.
We reach for JetEngine on sites with more moving parts, like a directory, a multi-location practice, or a site where one type of content needs to pull in another. It’s more to learn, and it ties you to the Crocoblock ecosystem, so we don’t use it where ACF would do.
Displaying it with Elementor
Either way, the display is built in Elementor. Elementor Pro’s Theme Builder lets us design a single template for every project (or team member, or event), using dynamic tags that pull in each entry’s fields. Its Loop Grid then lists entries anywhere on the site. We explain that part in building a portfolio or team page with Elementor Loop Grid.
What editing looks like for you
Once it’s set up, adding a new project is a form:
- Go to Projects > Add New.
- Type the title.
- Fill in suburb, job type and date.
- Upload the gallery photos.
- Write a short description.
- Publish.
The project appears on the Projects page, in the right filter, in the “recent work” section of the matching service page, and in the sitemap. You never touch the layout, so you can’t break it.
Things to plan before building
Decide the fields once. Changing them later is possible, but it’s easier to agree up front: what does every project need? What’s optional?
Think about URLs. A projects type usually lives at /projects/project-name/. Pick the base name carefully, because changing it later breaks links.
Decide what’s public. Some types (testimonials, for example) don’t need their own page at all. They can exist only to be displayed elsewhere. Make sure those are excluded from your sitemap and search.
Plan for SEO. Each public entry is a page Google can index, so treat them as real pages with real descriptions, not thin placeholders with one photo.
Don’t lock content into a theme. Post types registered by a theme disappear when you change themes. Register them with a plugin like ACF or JetEngine so your content survives a redesign.
Is it worth it for your site?
Count how many items of the same kind you’ll add in the next two years. If it’s more than about ten, or they appear in more than one place on your site, a custom post type will pay for itself in time saved and mistakes avoided.
We build custom post types into sites where the content calls for them, and set up the editing screens so you don’t need us to add a new project. Adding one to an existing site is a typical WordPress and Elementor job. Our web design page covers what’s included. Got a list of projects, staff or locations that keeps growing? We can sketch the fields it needs once you tell us about your content.