Help Center
Useful Resources

WordPress Custom Post Type in Action: 8 Common Site Types Built Using CPT 

ivanova
Helena Ivanova
|
Technical content writer
Show all articles

Using custom post types (CPT) is natural for any proper CMS, and in WordPress, this functionality was introduced back in 2010, and it was one of the most important events in WordPress history, as it was what turned a blogging platform into a fully-fledged, scalable CMS. Since then, you can add CPTs either programmatically or using plugins

So, in this article, I will discuss the most common cases for using custom post types on particular website types and how they act within this system. 

CPTs in CMSs and Builders

What are custom post types essentially? They are user-defined content structures that store and organize a specific kind of content separately from standard pages or articles, with their own fields, rules, and presentation. Each CPT can have its own permission, workflows, API behavior, taxonomies, and capabilities to extend the whole system. 

As I mentioned above, any proper CMS should have this functionality – to be able to organize content in a scalable and reusable way. So, does that mean that popular builders (other than WordPress) have this functionality?

In reality, no, most of the popular builders actually don’t have it. Instead, they offer Collections/Databases a database-like group of content entries that share the same set of fields and can be displayed dynamically across a website using templates. 

PlatformReal CPTs / content typesCollections / database-style content
WordPress✅ (using free and premium plugins or code)
Drupal
Craft CMS
Statamic
Directus
Strapi
Joomla⚠️ (via extensions)
Webflow
Framer
Wix
Bubble
Squarespace⚠️ (limited)
Ghost⚠️ (limited)

Creating CPT-based sites in WordPress

The process of creating CPTs in WordPress is very straightforward, but what can be really tricky and become the biggest advantage or disadvantage is the data architecture. The second super important part is choosing the right tool for implementing your data scheme. 

I’m often surprised, and even overwhelmed by how frequently ACF is mentioned whenever CPTs and custom fields come up. Because of its long history and widespread adoption, it has become the tool many video creators, AI chatbots, and articles recommend first. While ACF is undoubtedly useful and remains a solid choice in many projects, especially when building custom frameworks, it’s not the most efficient and definitely the most feature-rich option available today.

For web designers who are just starting with CPTs, the experience can be challenging. Because after reading introductory materials, they may quickly find themselves navigating PHP documentation, hooks, and suggested custom code to achieve relatively common functionality. Consequently, this creates a steeper learning curve than expected and can make WordPress as an option feel too complicated. As a result, some rookies may gravitate toward simpler SaaS website builders, which often appear easier to get started with, even if they offer significantly less flexibility, system lock-in, a huge price tag, and no scalability in the long run.

Having worked with ACF for many years and experimented with other solutions, I’ve found JetEngine to be a particularly versatile option for projects that rely heavily on CPTs and custom content structures. That’s why the examples throughout this article will use JetEngine’s modules and tools to demonstrate different CPT-related workflows. 

💡Also, it’s important to clear up a common misconception often repeated by Google results and AI tools: JetEngine is not a plugin that works only with page builders. It can also be used in custom frameworks, as all field values are accessible in PHP and can be output using its built-in Shortcode Generator (JetEngine > JetEngine > Shortcode Generator tab). 

For developers who need additional flexibility, JetEngine also provides documentation, a hook reference, and the tools needed to extend its functionality or build custom add-ons. 

JetEngine tools for working with CPTs and custom fields

This is a list of modules JetEngine offers for working with CPTs. All of them are fully visual (no coding involved). 

FeatureJetEngine Capability
Custom Post Types (CPTs)Create and manage CPTs without code.
Custom taxonomiesCreate custom taxonomies and attach them to any post type.
Custom fieldsAdd text, number, date, media, repeater, switcher, WYSIWYG, map, gallery, and many other field types.
Meta boxesCreate field groups for posts, pages, CPTs, taxonomies, users, comments, and options pages.
Can be assigned to terms and users as well. 
Repeater fieldsBuild repeatable sets of fields without custom code.
RelationsAdditional connections between CPTs beyond taxonomies.
Dynamic content outputDisplay field values dynamically in templates and post loops (listing templates).
Query BuilderBuild custom queries without writing WP_Query code or SQL.
Custom Content Types (CCTs)Create database-driven content structures that do not rely on WordPress posts.
Dedicated database tables for CPTsMade for better performance and a clear data structure.
Options (Settings) pagesCreate global settings pages with custom fields.
REST API moduleExpose CPTs, fields, and related data through the REST API. A powerful module to work with applications, headless builds, and AI builders
Dynamic visibilityShow or hide content based on field values and any other conditions.
Loop (Listing) templatesCreate reusable templates for CPT items, taxonomy terms, users, and CCT records.
Field value macrosUse dynamic macros to retrieve related and contextual data.
Shortcode generatorGenerate shortcodes for dynamic field output.
Data storesSave favorites, bookmarks, wishlists, and other user-specific collections.
Custom queries and fields for relationsAdd fields and query related content without custom PHP.
Dynamic data displayData can be displayed in dynamic calendars, tables, and charts.
Maps integrationDisplay geolocation data from custom fields.
Import/export supportImport and export CPTs, fields, and related structures using dedicated integrations for WP All Import/Export and other plugins. 
Cross-plugin CPT and field support Supports structures created by ACF, Meta Box, Pods, etc. 
Builder independenceWorks with Elementor, Gutenberg, Bricks, Divi, and custom theme development.
Special integrationsAdditional functionality is available when combined with JetFormBuilder, JetBooking, JetAppointment, JetSmartFilters, and other Crocoblock plugins. 
Translation tools supportWPML, Polylang, TranslatePress, and other translation plugins support.
Other toolsMCP server, AI Site Structure Builder, Profile Builder.

8 Common Website Examples Built Using CPTs

It’s not really possible to provide a ready-made structure for a particular type of website that will fit every project perfectly. The same applies to pre-built themes, as they rarely work without some level of customization, unless you adjust to this theme’s limitations.

Instead, the examples below focus on some of the most common website types and illustrate the core concepts behind each one, which you can then adapt to your specific requirements.

⛏️ The most frequently used plugins in these examples are: 
JetEngine and JetSmartFilters, JetSearch, JetBooking, JetAppointment, JetFormBuilder, JetThemeCore. 

1. Real estate / Property listing website

  • CPT: Properties (+ Agencies for multi-agency portals).
  • Taxonomies: Property Type, Listing Status (sale/rent/sold), Location (hierarchical: Country > City > District), Amenities.
  • Meta fields: price, area, rooms, bathrooms, year built, floor, gallery, floor plan, geolocation.
  • Relations: Property and Agent (many-to-one), Agent and Agency, Property and Development.
  • Options page: agency contacts.
  • Display: Map Listing + Listing Grid + JetSmartFilters (price slider, rooms, amenities, location). 
  • Data Store for saved/compare.
  • Extra user roles: Agent. 
  • Profile Builder: agents submit and edit listings.

🎓 Additional features and plugins: you can create a full-fledged real estate booking website if you add JetBooking (can be single- or multi-vendor) and JetMessenger

Real estate website structure

2. Medical / Doctor directory

  • CPTs: Doctors and Clinics.
  • Taxonomies: Specialty, Languages, City.
  • Meta fields: photo, bio, years of experience, consultation fee, license number, contacts.
  • Relations: Doctor and Clinic (many-to-many). Relation meta field for role at each clinic.
  • Options page: emergency hotline, medical disclaimer.
  • Appointments: JetAppointment (time slots).
  • Profile Builder: doctors maintain profiles.

🎓 Additional features and plugins: JetMessenger to connect potential customers with doctors and keep their messages on the website as well as on their mailboxes. 

💡 Check the dedicated dynamic template for Crocoblock All-Inclusive subscribers.  

Medical site structure

3. Course / Education platform / Online school

  • CPTs: Courses, Lessons, Instructors. 
  • Taxonomies: Subject, Level (beginner/intermediate/advanced).
  • Meta fields:
    • for Courses: duration, price, intro video, certificate (bool), prerequisites (checkbox field generated from all other Courses); 
    • for Instructors: photo, bio, qualifications, contacts;
    • for Lessons: video, duration, order number, downloadable materials. 
  • Relations: Course and Instructor, Course and Lessons (one-to-many).
  • Display: Listing Grid + JetSmartFilters (subject, level, price); course single renders the curriculum by querying related Lessons ordered by the order field. 
  • Profile Builder: student dashboard.

🎓 Note: JetEngine handles catalog + structure + dashboards; pair with a dedicated LMS for quizzes/video-gating.

Educational Platform Structure

4. Booking website

  • CPT: Properties. 
  • Taxonomies: Type, City.
  • Meta fields: capacity, gallery, amenities, geolocation.
  • Booking engine: JetBooking availability calendars, date-range pricing, reservations (its own tables). 
  • Display: Listing Grid + JetSmartFilters (location, type, capacity, price) + Map Listing; single page shows JetBooking’s availability calendar.

🎓 Crocoblock Suite is a really powerful solution for booking websites. The good news is that now, JetBooking has become even more powerful: it can work as a standalone plugin, can work with WooCommerce checkout, or add a booking functionality to WooCommerce natively, with much more flexibility than many rivals

💡 Check these examples and guides on how to build such websites: 

  1. Car reservation system;
  2. A hotel booking system like Airbnb;
  3. How to build a booking system with Bricks.  

Also, don’t forget to test the newest plugin by Crocoblock – JetMessenger, as it’s a really great asset for any booking site. 

Rental website structure

5. Job board

  • CPTs: Jobs, Companies.
  • CCT: Applications.
  • Taxonomies: Industry, Job Type (full/part/contract), Location, Experience Level.
  • Meta fields: 
    • for Jobs: salary min/max (range filter), remote (bool), deadline (date);
    • for Companies: logo, about, website, HQ location, company size;
    • for Application: cover note, CV file, status, and applied date.
  • Relations: Job and Company (many-to-one), Job and Recruiter, Application and Job, Application and User (applicant).
  • Forms: JetFormBuilder application form (CV upload)  with the “Insert CCT item” action, writes the application. 
  • Display: Listing Grid + JetSmartFilters (category, job type, location, salary range) + JetSearch for keyword search; company single lists the Company’s jobs via the relation query.
  • Profile Builder: employers post/manage jobs; candidates track their applications.

💡 Read a detailed guide on how to build a Job Board website in this article, or use the dedicated dynamic template for Crocoblock All-Inclusive subscribers.  

Job board site structure

6. Restaurant / Menu system

  • CPT: Dishes, Menu Items. 
  • Taxonomies: Menu Category (starters/mains/desserts), Cuisine, Dietary (vegan/gluten-free/halal), Allergens.
  • Meta fields: price, ingredients, calories, photo, spice level.
  • Options page: opening hours, address, reservation link, phone (single-location sites).
  • Display: Listing Grid grouped by Menu Category (or one grid per term) + JetSmartFilters (cuisine, dietary, allergens).
Restaurant menu site

7. Portfolio / Creative agency

  • CPT: Portfolio.
  • Taxonomies: Industries, Service Type. 
  • Meta fields: project description, challenge, solution, images, gallery, brand color (colorpicker, optional).
  • Display: Listing Grid + JetSmartFilters (industries, service type).

💡 Read a very detailed guide on building a portfolio website for a marketing agency. 

Portfolio site structure

8. Knowledge base / Documentation

  • CPT: Articles.
  • Taxonomies: Article Category (hierarchical), Tags, Product/Version.
  • Meta fields: last updated, difficulty, read time, related docs. 
  • Display: Listing Grid + JetSearch for keyword search + JetSmartFilters’ hierarchical taxonomy as a nav tree; in the Single template, the related-articles block reads the related-docs Posts field; “Was this helpful?” via Data Store. 
Knowledge base structure

FAQ

What is a custom post type in WordPress? 

A custom post type is a user-defined content structure that stores a specific kind of content, like properties, courses, or doctors, separately from standard posts and pages, with its own fields, taxonomies, and templates. 

What are some WordPress custom post type examples? 

The most common WordPress CPT examples include real estate listings, doctor directories, online courses, job boards, restaurant menus, portfolios, and knowledge bases. Each store has structured, repeatable data that a normal blog post can’t organize or filter.

Do I need a plugin to create custom post types in WordPress? 

You can register them with code, but a plugin is faster and far easier to maintain. A JetEngine custom post type, for instance, is built visually in a few clicks, with custom fields, relations, and queries included out of the box.

What’s the difference between a custom post type and a taxonomy?

A custom post type is the thing (a property, a dish); a taxonomy is how you group and browse those things (location, cuisine, category). Use fields for an item’s own attributes and taxonomies for the buckets people filter by.

What kinds of websites use custom post types? 

There are endless custom post-type website examples: marketplaces, directories, booking sites, LMS platforms, job boards, and documentation hubs. Any time a site shows a filterable collection of structured entries, CPTs are doing the work underneath.

Wrapping Up

In this article, I wanted to show you just common patterns and examples of using custom post types in WordPress, and how flexible and scalable your project can be thanks to them. Also, I showed the tools that you can use to do basically anything with these posts and data stored in their fields in the most efficient way. 

Was this article helpful?
YesNo
Supercharge your websites using JetEngine
Try now