- Article
- 3 minutes read
- Reviewed August 3, 2026
A WordPress content model usually combines three complementary systems: post types, taxonomies and custom fields.
The post type defines what the primary object is. Taxonomies classify it with reusable terms. Fields store attributes that belong to each individual entry.
Post Types Define the Nouns
A post type represents the central object an editor creates and manages: Event, Property, Course or Team Member.
It normally has its own lifecycle, permissions, templates and collection of records.
Taxonomies Define Reusable Classification
A taxonomy answers a repeated classification question: Which topic? Which location? Which difficulty?
Terms are shared across records and can provide archives, filters and navigation.
Fields Define Individual Attributes
Fields answer questions about one record: When does this event start? What is this property price? How long is this course?
They are suitable for values that need validation, formatting, calculation or query behaviour.
A Complete Example: Events
Consider an events website.
- Post type: Event.
- Taxonomies: Event type, audience and location region.
- Fields: Start time, end time, ticket URL, capacity and featured status.
- Relationships: Venue, organizer and related speakers.
- Main content: Event description and editorial programme.
Each layer has one job. Using a Venue taxonomy for a rich venue record or typing the start date into the description would weaken the model.
A Complete Example: Documentation
- Post type: Documentation page.
- Hierarchy or relationship: Product, section and parent document.
- Fields: Reading order, version introduced and review date.
- Taxonomies: Audience or technical level when those values need cross-section filtering.
- Main content: The actual explanation, procedure and code examples.
Common Modelling Mistakes
Using a Field for Reusable Classification
A free-text Location field creates spelling variations and cannot provide a stable term archive. A taxonomy or venue relationship may be better.
Using a Taxonomy for a Rich Object
A Speaker term becomes awkward when it needs a biography, portrait, social links and its own workflow. Speaker may deserve a post type.
Creating a Post Type for Every Label
A distinction such as News versus Tutorials may need only categories if both are published and displayed as articles.
Storing Everything in Blocks
Blocks can create beautiful layouts, but important dates and identifiers hidden in block markup are difficult to query and integrate.
Relationships Add a Fourth Layer
Many models connect primary objects: a course has an instructor, an event occurs at a venue and a property belongs to an agent.
Define whether the relationship is one-to-one, one-to-many or many-to-many, whether order matters and what happens when either object is removed.
The Editor Experience
A technically correct schema can still fail if the editor form is confusing. Labels, grouping, instructions, defaults and validation should reflect the workflow.
Editors should not need to understand database terminology to create valid content.
The Public Experience
Templates combine the layers into useful pages. Taxonomy terms can drive filters, metadata can create cards and post relationships can generate related-content sections.
Do not design the model solely around one current template. The same information may later appear in search, email, applications or exports.
A Modelling Sequence
- List the real objects the project manages.
- Choose the primary objects that need post types.
- Identify reusable classification dimensions.
- Identify attributes belonging to individual objects.
- Define relationships between objects.
- Design editor workflows and permissions.
- Test the model against public pages, queries and integrations.
Frequently Asked Questions
Should a value be a taxonomy or a custom field?
Use a taxonomy for reusable classification terms and a field for an attribute belonging primarily to one entry.
Can a post type use several taxonomies?
Yes. Separate taxonomies are useful when they represent independent classification dimensions.
Can custom fields reference other posts?
Yes. Relationship fields commonly store IDs of related objects, but the implementation should define cardinality and deletion behaviour.