Skip to content
McGinnPublishing
CMS

ACF or the Block Editor? Stop choosing, on purpose.

Most WordPress builds pick one and regret it. The ones that work use ACF for structured data and blocks for editorial flow — and know where the line is.

8 min readTeodor Vasile, Principal Engineer

There is a false choice doing the rounds, and it usually gets resolved by whoever is loudest in the room. Block editors are modern and free, therefore good. ACF is structured and queryable, therefore good. Both statements are true and neither settles the question, because they answer different questions.

What each is actually for

Blocks are an editorial flow primitive. They answer "in what order does this story appear?" A journalist laying out a feature wants to move a paragraph up and a pull quote down, and they want it to survive a redesign. That is exactly what a block editor does well.

ACF fields are a structured data primitive. They answer "what is a book?" A book has an ISBN, a format, a page count, a publication date and a price, and something needs to sort and filter by those. That is exactly what a field group does well.

Using blocks for a product record means your price is a rich-text span that cannot be sorted on. Using ACF for an article means your editors are filling in fourteen form fields to write a piece that should be flowing prose in a box they can resize.

Where the line goes

Our rule: if the value will be filtered, sorted, displayed in more than one context, or sent to a third-party system, it is a field. If it exists to be read once, in order, by a person, it is a block.

  • A book is fields. ISBN, format, imprint, price, availability, related titles.
  • An article is blocks. Prose, subhead, pull quote, image, data table, embedded product.
  • An article that appears on the homepage and in a newsletter is fields around blocks: dek, kicker, hero_image, authors, reading_minutes, plus a content block array for the body.

Sync both to the frontend, deliberately

The front end should not care which authoring tool produced a value. Both map into the same typed GraphQL shape, and the React component for an article is the same component whether the body arrived from post_content or from acf.content.

We have shipped both arrangements on live sites and the deciding factor is rarely technical. It is what your editors already know and what they will actually use. Ask the team, then design to the answer.

The right question is not which plugin you install. It is whether the thing you are storing is a value or a document.

Tagged

  • ACF
  • Gutenberg
  • WordPress
  • Content modelling