WordPress gives you Posts and Pages. Everything else — products, properties, events, recipes,
team members — you build with "Custom Post Types," which in practice means a plugin
(Custom Post Type UI, Pods, or hand-rolled register_post_type
calls in functions.php). In Contensio, defining a new content type is a
built-in admin action. No code, no plugin, no copy-pasted snippets from a Stack
Overflow answer.
Built-in types, custom ones sit beside them
Contensio ships with two system types — Page and Post — that cover most marketing and editorial needs. Everything you add beyond that is a first-class sibling: same admin UI, same translations, same SEO tooling, same permissions.
Product
For shops. Price, SKU, stock, gallery.
Property
For real estate. Location, features, photos.
Event
Date, venue, capacity, RSVP.
Course
For learning platforms. Lessons, duration, instructor.
Team member
Name, role, bio, photo.
Anything
Your content type, your fields, your permissions.
What defines a content type
- Labels — singular and plural, per language.
- Icon — shown in the sidebar and in content lists.
- Fields — your custom schema (text, number, repeater, relationship, media, select, rich text). See Advanced custom fields for the full field palette.
- Taxonomies — attach categories, tags, or custom taxonomies. Each is translatable.
- URL pattern —
/products/{slug},/events/{year}/{slug}, or anything your theme resolves. - Comments — opt-in per type.
- Permissions — granular: some roles can create Products, others can only edit their own.
Compared to WordPress
WordPress
- ✗Needs CPT UI or Pods plugin
- ✗Or hand-written
register_post_type() - ✗No built-in permissions per type
- ✗Multilingual requires another plugin
Contensio
- ✓Create from the admin, no code
- ✓Fields, taxonomies, icon in one place
- ✓Per-type permissions built in
- ✓Multilingual labels & values out of the box
FAQ
Yes. Add, rename, or remove fields at any time. Existing content keeps data for removed fields until you clean it up manually — nothing is silently destroyed.
Of course — they're Eloquent models. Use Content::whereContentType('product')->published()->get() or write your own scopes.
Yes. Use Import / Export to carry a content type's full schema (fields, taxonomies, labels) between sites as one JSON file.