Data

Custom Content Types (Blocks)

Custom Content Types (the Dynamic Content builder) model structured data as schema-defined records in their own database table — a fast, lightweight alternative to a full post type for large datasets, with no wp_posts or wp_postmeta overhead. Where: WP Admin → Tiger Blocks → Data → Dynamic Content. Enable the engine under Modules & Widgets → […]

2 min read Updated July 14, 2026

Custom Content Types (the Dynamic Content builder) model structured data as schema-defined records in their own database table — a fast, lightweight alternative to a full post type for large datasets, with no wp_posts or wp_postmeta overhead.

Where: WP Admin → Tiger BlocksDataDynamic Content. Enable the engine under Modules & WidgetsDynamic Content.

Define a content type

  1. Give the type a name and a slug. The plugin creates a dedicated table ({prefix}tigerbl_cct_<slug>) and keeps it in sync with your schema.
  2. Add fields, choosing a type for each.
  3. Save — then add, edit and bulk-manage records in that type’s own list screen.

Field types

  • Text, Textarea, Number, Email, URL, Phone, Date, Color, Select — typed columns with the right storage.
  • Image and Gallery — media references.
  • Checkbox — a boolean toggle.
  • Computed — a virtual value built from a {placeholder} template of other fields (for example a full name from first + last), with no column of its own and no code.

Every row also carries the reserved columns _id, _created_at and _updated_at, which you never edit directly.

Display with blocks

Point the CCT Grid or a saved Query (with the Content Type (CCT) source) at a type to render a directory, a listing or a filterable grid, and bind individual fields into cards. Because records live in a plain indexed table, they stay fast even as the dataset grows into the thousands.

Troubleshooting

Saving a content type reports an error

A type needs a valid slug and at least one defined field before it can be saved. Check that the slug uses only letters, numbers and underscores and that no field row is left blank, then save again.

My Computed field is empty

Computed fields are pure placeholder substitution — each {field_key} in the template must match an existing field’s key exactly (they are case-sensitive). Fix the key names in the template and the value fills in on the next render.

Still stuck?

We’re here to help

Can’t find what you’re looking for, or hit something that looks like a bug? Reach the support team or ask the community.