WordPress · Advanced Custom Fields · Custom Post Types

How to use ACF and custom post types for a content team

Custom post types and ACF turn articles, products and portfolios into forms editors fill in. How I model content so teams publish without a developer.

Mohit Goyal 5 min read
How to use ACF and custom post types for a content team

Use a custom post type for any content you publish many times with the same structure, such as articles, portfolios, products or courses, and use Advanced Custom Fields (ACF) to give each one a set of fields to fill in. The template then lays out every entry the same way, so editors publish by completing a form rather than designing a page. After I rebuilt IIID Inscape this way, the client reported editors publishing new features 50 percent quicker.

Why do content teams get stuck waiting for a developer?

Because the content is built as pages. When every article or portfolio is a hand-laid-out page, adding one means copying an old page, editing it carefully and hoping nothing breaks. Editors stop trusting themselves, and every new item becomes a developer ticket.

IIID Inscape, the magazine of the Institute of Indian Interior Designers, was in that position. It was a static publication with no easy way to publish articles, and the member portfolios at the heart of the publication had no structured home on the site.

When should you use a custom post type instead of a page?

ContentUseWhy
Home, about, contactPageOne-off layouts that change rarely
News and blogPostBuilt into WordPress with dates and categories
Articles, portfolios, case studiesCustom post typeMany entries, same structure, need archives and filters
Products in a catalogueCustom post type or WooCommerce productsSpecifications differ by type and must stay consistent
Courses, events, team membersCustom post typeRepeated fields such as dates, prices and people

The rule I use: if you will publish more than a handful and each one has the same kinds of information, it is a post type.

How do ACF and custom post types fit together?

Rendering diagram…

The post type gives you the container, its admin menu and its archive. ACF gives you the fields. The template reads the fields and does the layout. Editors only ever see the form.

On IIID I used CPT UI, a plugin that registers post types from a settings screen, plus ACF for flexible fields, and built the templates in Oxygen Builder from Figma designs. Treating articles and portfolios as structured content gave the editors consistent templates and gave the site listing and archive pages without extra work.

How do you model the content before building?

  1. 1

    Audit what exists

    List every type of content on the current site and in the editors' plans. On IIID this started with stakeholder workshops and a content audit.

  2. 2

    Group by structure

    Items that share the same fields become one post type. Articles and portfolios were separate types on IIID because they carry different information.

  3. 3

    List the fields

    For each type, write down every field and whether it is required. A course on CyberVie's learning portal had duration, modules, instructors, pricing and call-to-action blocks.

  4. 4

    Decide the taxonomies

    Categories and tags that drive filters and archive pages.

  5. 5

    Design the templates

    One single template and one listing template per type.

  6. 6

    Train the editors

    Show them the form, not the builder. I trained IIID's admins so they could publish without me.

Should everything be a post type?

No. Marketing pages change shape often, and forcing them into fields makes them rigid. On CyberVie I split the two deliberately. The service pages for VAPT, SOC as a Service and DFIR were built in Elementor Pro, where layouts vary and marketing needs to adjust them. The courses on the learning portal were modelled with ACF, where every entry has the same structure and consistency matters more than freedom.

Product catalogues work the same way. On Orilite, ACF holds the product details, project showcases and events, and on Nortek LED it drives product templates so each product type shows the specifications that matter for it.

What results did clients report?

50%

IIID: quicker publishing of new features

40%

IIID: faster page loads

40%

Orilite: less time on content updates

15%

Orilite: more engagement on product pages

These are what the clients reported after launch, not lab measurements. IIID also reported a 25 percent increase in engagement on article and portfolio pages.

Plan the archive from day one

IIID held an archive the institute could not recreate, so backups and restore were set up from launch. Structured content is easier to back up, export and move later, but only if someone sets that up.

How do you display ACF fields in a template?

Most builders read ACF fields through their dynamic data settings, so you rarely need code. In a PHP template it is one function per field:

php
<h1><?php the_title(); ?></h1>
<p class="duration"><?php echo esc_html( get_field( 'duration' ) ); ?></p>

Escape every field on output, as above. Editors type into these fields, so treat the values as untrusted.

Where should you start?

List your repeated content and its fields before anyone opens a design tool. If you are rebuilding from a design, see Figma to WordPress: how I get pixel-perfect builds. I build structured WordPress sites through my WordPress websites on Bricks, Elementor and Oxygen service. Send me the content your team publishes most and I will reply with a plan.

Frequently asked

What is a custom post type in WordPress?+

A content type alongside posts and pages, such as Articles, Portfolios or Courses. Each gets its own admin menu, its own templates and its own archive page.

Do I need a plugin to create custom post types?+

No, you can register them in code. On IIID Inscape I used CPT UI, a plugin that registers post types from a settings screen, together with Advanced Custom Fields for the fields.

What is ACF used for?+

Advanced Custom Fields adds structured fields to the editing screen, such as a duration, a price, an instructor or a gallery. Templates then read those fields, so every entry is laid out the same way.

Can I use ACF with a page builder?+

Yes. IIID Inscape and Orilite used ACF with Oxygen Builder, and CyberVie used it alongside Elementor Pro. Builders like Bricks, Oxygen and Elementor Pro can read ACF fields in their templates.

Does this make the site faster to update?+

It did for my clients. After launch, IIID Inscape reported editors publishing new features 50 percent quicker, and Orilite reported 40 percent less time spent on content updates.

Mohit Goyal

Written by Mohit Goyal

Senior Web Developer in Gurugram, India. 100+ fast, SEO-friendly sites shipped in 4+ years with Next.js, React and WordPress, including the procol.ai rebuild. Send me your next project.

Keep reading

Let's build

Have a site that needs to be fast, rank and convert?

Open to Work. Usually replies within a day.