Answers · Tampa Bay

What Are WordPress Custom Post Types?

WordPress custom post types explained for Tampa businesses — what they are, when to use them, and how they enable real authority sites.

4 minRead time
1,000Words
Quick answerFormat
Short answer

Custom post types are how you tell WordPress about content types beyond the default Posts and Pages — like Services, Case Studies, Staff, Properties, or Locations. They’re the foundation of any serious WordPress authority site. You can create them with a plugin (ACF, CPT UI) in a few minutes, no code required, or hand-code them for performance.

What WordPress comes with

Out of the box, WordPress has two main content types:

  • Posts — for blog entries, news, articles. Time-ordered. Categories and tags. Standard archive.
  • Pages — for static content like Home, About, Contact. No categories, hierarchical.

WordPress also has built-in “post types” like Attachments (media), Revisions, and Nav Menus. Most users only think about Posts and Pages.

The problem: real businesses have more types of content than Posts and Pages can elegantly handle.

Why you’d want custom post types

Imagine you’re a Tampa real estate brokerage. You have:

  • Property listings (with price, beds, baths, square footage, address, photos)
  • Agent profiles (with bio, photo, specialty, contact info)
  • Office locations (with address, hours, phone)
  • Blog posts (regular Posts work fine)
  • Pages (Home, About — regular Pages work fine)

Could you build all of this with just Posts and Pages?

  • Properties could be Posts in a “Properties” category. But you’d be hacking custom fields to store price, beds, baths. The default Posts archive doesn’t filter by these fields.
  • Agents could be Pages, but then they have no archive page, no taxonomy, no consistent template.
  • Locations same issue.

Custom post types solve this elegantly. You define a “Properties” type with its own fields (price, beds, baths, etc.), its own archive page (/properties/), its own URL structure, its own template. Same for Agents (/agents/) and Locations (/locations/).

Common custom post types for Tampa businesses

What we typically create when building Tampa WordPress sites:

Service business sites

  • Services — your service offerings, each with description, pricing, hero image
  • Service Areas / Locations — neighborhoods and cities you serve, for local SEO
  • Case Studies — past project examples with results
  • Team Members — staff profiles
  • Testimonials — customer reviews

Healthcare / professional services

  • Providers — doctors, lawyers, dentists with bios and specialties
  • Services — procedures or service types
  • Locations — office locations
  • Insurance Accepted — for medical practices

Real estate

  • Properties — listings with price, beds, baths, photos
  • Agents — agent profiles
  • Neighborhoods — area pages for local SEO
  • Communities — for HOA or developer sites

Restaurants / hospitality

  • Menu Items — dishes with description, price, dietary tags
  • Events — upcoming events with date and time
  • Locations — multi-location restaurants

E-commerce / WooCommerce

WooCommerce uses a custom post type called “Product” already. Beyond that:

  • Recipes (for food brands)
  • Inspiration / Lookbook (for fashion or interior)
  • Brand Stories (for marketing-heavy products)

How custom post types help SEO

For programmatic SEO — building lots of related pages at scale — custom post types are essential.

Example: an HVAC company wanting to rank for every Tampa neighborhood. With a “Service Areas” custom post type:

  • Each neighborhood (Brandon, Riverview, Carrollwood, etc.) is one entry in the type
  • All neighborhood pages share the same template
  • You define the fields (zip code, key landmarks, response time, photos) once
  • A “Service Areas” archive page lists them all
  • URL structure is /service-areas/brandon/, /service-areas/riverview/, etc.

Without a custom post type, you’d either:

  • Make 30 separate Pages (no archive, no consistent template, no shared logic)
  • Use Posts (wrong semantics, no field structure)
  • Hack categories and custom fields together (messy)

Custom post types are the clean answer.

How to create them

Option 1: Plugin (most common)

For non-developers, two main plugins:

  • Custom Post Type UI (CPT UI) — free, popular, simple interface for creating post types
  • Advanced Custom Fields (ACF) — paid, more powerful, also creates field groups attached to post types. ACF Pro is $79/year (now owned by WP Engine).

Workflow with CPT UI + ACF:

  1. CPT UI: create “Services” post type, configure URL slug, archive, supports (title, content, featured image, etc.)
  2. ACF: create field group “Service Details” with fields like price ($), duration (text), timeline (text), CTA button URL
  3. Attach the field group to the Services post type
  4. Add services through the WordPress admin like you would Posts

Total time: 15 to 30 minutes for a basic custom post type with fields.

Option 2: Code (cleaner for developers)

In your theme’s functions.php (or a custom plugin), you can register post types programmatically. Twenty lines of PHP. Same result as the plugin approach, but:

  • No plugin dependency
  • Portable (works on any WordPress site)
  • Slightly faster (one less plugin running)
  • Version-controllable

For client sites where we’re building custom themes, we register post types in code. For client sites where we want the client to edit the structure, we use CPT UI + ACF so they don’t need a developer for every change.

Option 3: Built-in via theme framework

Some frameworks (Genesis, certain page builders’ frameworks) handle post type creation. Generally we prefer the explicit approaches above for flexibility.

Custom fields: the partner to post types

Post types define the kind of content. Custom fields define what data each entry has.

A “Services” post type has the default WordPress fields (title, content, featured image, excerpt). Adding custom fields lets you store:

  • Service price
  • Service duration
  • Includes / doesn’t include lists
  • FAQ specific to that service
  • Schema markup data (for SEO)
  • Cross-sell suggestions

Tools for custom fields:

  • ACF (Advanced Custom Fields) — the standard, $79/year for Pro
  • Meta Box — alternative, free + paid
  • WordPress core — built-in custom fields (clunky UI)
  • WPGraphQL + ACF for headless setups

For 95% of Tampa WordPress builds, we use ACF Pro. It’s the de facto standard.

Taxonomies: organizing custom post types

Taxonomies are how you categorize entries within a post type. WordPress has two default taxonomies:

  • Categories (hierarchical) — for Posts
  • Tags (flat) — for Posts

You can register custom taxonomies for custom post types. Examples:

  • A “Properties” post type might have a “Property Type” taxonomy (Single Family, Condo, Townhouse) and a “Neighborhood” taxonomy (Hyde Park, Channelside, etc.)
  • A “Services” post type might have a “Service Category” taxonomy (Heating, Cooling, Maintenance)
  • A “Case Studies” post type might have an “Industry” taxonomy (Healthcare, Legal, Restaurant)

Taxonomies enable filtering, archive pages, and search refinement.

URL structure

When you register a custom post type, you control its URL slug. Examples:

  • /services/water-heater-install/
  • /properties/123-main-street-tampa/
  • /case-studies/dental-practice-redesign/
  • /locations/brandon/

Each post type also gets an archive URL by default (/services/, /properties/, etc.) that you can customize.

For SEO, custom post type URLs are clean and topical. This matters for Tampa local SEO.

Common mistakes

1. Creating a custom post type when a category would do

If “Tampa team members” are basically just blog posts about people, maybe a category on Posts is fine. The threshold for a custom post type: do these entries have different fields than Posts? Different templates? Different URLs? If yes, custom post type. If no, save the complexity.

2. Too many post types

A site with 15 custom post types is hard to administer. Three or four is usually plenty for a small business. If you have more, you might be over-modeling.

3. Forgetting to register the archive

A custom post type without a proper archive page is half-built. Make sure your post type has has_archive => true (in code) or “Has Archive: True” (in CPT UI).

4. Slug conflicts

If your post type slug is /team/ and you also have a Page with slug /team/, there’s a conflict. Plan slugs carefully.

5. Tying post types to a specific theme

If you register post types in your theme’s functions.php, switching themes destroys them. Best practice: register post types in a custom plugin or a child theme that you’ll keep. See WordPress child theme.

6. Not exporting / version controlling structure

CPT UI lets you export post type definitions as JSON. ACF lets you export field groups. Export these regularly so you can rebuild your data structure if something goes wrong.

What we actually build

For a typical Tampa service business WordPress site, our standard structure:

  • Services post type with custom fields for pricing, duration, FAQ, schema
  • Service Areas / Neighborhoods post type for local SEO landing pages
  • Case Studies post type with project results, photos, testimonial
  • Team Members post type with bio, photo, role, specialty
  • Testimonials post type used as ACF relationship field on services and case studies

This structure scales from a 20-page site to a 500-page authority site without restructuring.

Bottom line

Custom post types let WordPress model your actual business content beyond generic Posts and Pages. They’re essential for any serious site — especially for SEO-focused builds that need clean URL structures, consistent templates, and content at scale. Set them up with CPT UI + ACF for the non-developer route, or code them for production builds. See our recommended WordPress setup for Tampa businesses for the full structure we use.

Web Design Tampa Florida

Got a more specific question about your project?

Send the details — we reply within one business day with a straight answer, no sales theater. Or book the 30-minute discovery call directly.

1 day
Reply window · no sales call required