FlexiPost Documentation
The all-in-one no-code content builder for WordPress. Create Post Types, Taxonomies, Custom Fields, and Layouts — all without writing code.
What is FlexiPost?
FlexiPost is an all-in-one no-code content builder for WordPress. It combines four powerful tools into a single, cohesive admin interface — so you can go from idea to a live, structured content gallery without writing any code.
Create unlimited custom post types with icons, archive pages, and REST API support.
Build custom categories and tags and assign them to multiple post types.
15+ field types — Text, Image, Gallery, Repeater, Relation, Conditional Logic and more.
Design archive and single post layouts visually — drag blocks, insert template tags.
One-click install of complete content systems — Team, Portfolio, Events, FAQ, and more.
Describe your content in plain English — AI builds the post type and fields for you.
Database Tables
FlexiPost creates 5 custom tables on activation. Field values entered by users are stored as standard wp_postmeta.
| Table | Purpose |
|---|---|
{prefix}_itsmfp_post_types | Custom post type definitions |
{prefix}_itsmfp_taxonomies | Custom taxonomy definitions |
{prefix}_itsmfp_field_groups | Field group metadata |
{prefix}_itsmfp_fields | Individual field definitions |
{prefix}_itsmfp_templates | Layout/template configurations |
Installation
Automatic (Recommended)
In your WordPress admin sidebar.
Find the plugin in the WordPress directory.
FlexiPost will appear in your admin sidebar immediately.
Manual Upload
1. Plugins → Add New → Upload Plugin 2. Upload flexipost.zip 3. Click Install Now → Activate
Requirements
| Requirement | Minimum |
|---|---|
| WordPress | 6.2 or higher |
| PHP | 7.4 or higher |
| MySQL | 5.6 or higher |
| Browser | Chrome, Firefox, Safari, Edge (modern) |
Quick Start Guide
Option A — Module Library (Fastest)
Browse ready-made content systems.
E.g. "Team Member" — FlexiPost auto-creates the post type, fields, and layout.
Go to Team Members → Add New in your sidebar and fill in your data.
[cpt_display module="team-member" layout="grid" columns="3"]
Option B — Build from Scratch
FlexiPost → Post Types → Add New. Enter a Label (e.g. Books) — slug auto-fills.
Open the Meta Fields tab on your post type. Use Quick Add to add fields instantly.
FlexiPost → Templates → Add New. Drag layout blocks and save.
[cpt_display module="books" layout="grid" columns="3" per_page="9"]
Post Type Manager
Go to FlexiPost → Post Types → Add New to create a custom post type without writing any code.
Tabs Overview
| Tab | What You Configure |
|---|---|
| Basic | Label, Slug, Menu Icon (Dashicon or custom image) |
| Labels | Singular/Plural names, URL Rewrite Slug |
| Settings | Supports (Title, Editor, Thumbnail…), Public, Archive, REST API |
| Taxonomies | Toggle which taxonomies are attached — live, no save needed |
| Meta Fields | Quick-add fields directly to this post type |
List Operations
| Action | How |
|---|---|
| Edit | Click post type name or Edit button |
| Duplicate | Creates copy with _copy slug suffix |
| Delete | Removes definition — existing posts remain in database |
| Reorder | Drag the handle icon — saves automatically |
| Quick Edit | Click label text directly in the list |
Taxonomy Manager
Go to FlexiPost → Taxonomies → Add New to create custom categories and tags.
| Field | Description |
|---|---|
| Label | Display name (e.g. Genre) |
| Slug | URL-safe identifier (e.g. genre) |
| Singular / Plural | Labels for admin UI |
| Hierarchical | On = category-style 🌳 / Off = tag-style # |
| Public | Frontend visibility |
| Show in REST | Required for Gutenberg block editor support |
Assign taxonomies to post types using the toggle switches on the taxonomy edit screen — no save button needed, changes apply instantly.
Custom Field Builder
Two Ways to Add Fields
| Method | Best For |
|---|---|
| Direct Fields (Post Type → Meta Fields tab) | Fields on one post type only — FlexiPost auto-creates the field group |
| Field Groups (FlexiPost → Field Groups → Add New) | Reusable fields shared across multiple post types |
Creating a Field
Click Add Field — a two-step modal opens:
Browse by category or search. 15+ types available.
Set Label, Slug (auto-generated, itsmfp_ prefix added automatically), Description, Required, and type-specific settings.
Conditional Logic
Show or hide any field based on the value of another field.
| Operator | Meaning |
|---|---|
= | Equals |
!= | Does not equal |
contains | Contains the string |
> | Greater than |
< | Less than |
Field Types Reference
Basic Fields
| Type | Description | Stored As |
|---|---|---|
text | Single-line text input | string |
textarea | Multi-line text. Settings: Rows, Placeholder | string |
number | Numeric. Settings: Min, Max, Step | numeric string |
email | Email with format validation | string |
url | URL input | string |
tel | Telephone input | string |
password | Password input (stored as plain text) | string |
Choice Fields
| Type | Description | Stored As |
|---|---|---|
select | Dropdown. Options: key→value pairs, Multiple toggle | string or array |
checkbox | Multiple choice checkboxes | serialized array |
radio | Single choice radio buttons | string |
button_group | Stylish toggle button selector | string |
Media Fields
| Type | Description | Stored As |
|---|---|---|
image | Single image from WordPress Media Library | Attachment ID |
file | File attachment | Attachment ID |
gallery | Multiple images | Serialized array of IDs |
Date & Time
| Type | Format Stored |
|---|---|
date | YYYY-MM-DD |
datetime | YYYY-MM-DD HH:MM:SS |
time | HH:MM |
Relational Fields
| Type | Description | Stored As |
|---|---|---|
post_object | Select any WP post. Filter by post type | Post ID |
taxonomy | Select taxonomy terms | Term ID / array |
user | Select a WordPress user | User ID |
relation | Searchable related post selector. Settings: Related Post Type, Multiple | Post ID / array |
relationship | Bi-directional post relationship | Serialized array |
Advanced Fields
| Type | Description |
|---|---|
wysiwyg | Full WordPress TinyMCE rich text editor |
oembed | oEmbed-supported URL (YouTube, Vimeo, etc.) |
color | Color picker — stores hex string e.g. #667EEA |
range | Slider. Settings: Min, Max, Step |
link | URL + Link Text pair — stored as serialized array |
repeater | Repeatable group of sub-fields — stored as multi-dim array |
group | Groups related sub-fields — appears once |
code | Plain code block |
PHP Retrieval Examples
// Single field $value = get_post_meta( $post_id, 'itsmfp_field_key', true ); // Image field (get URL) $img_id = get_post_meta( $post_id, 'itsmfp_cover_image', true ); echo wp_get_attachment_image( $img_id, 'medium' ); // Date field (formatted) $date = get_post_meta( $post_id, 'itsmfp_event_date', true ); echo date_i18n( get_option('date_format'), strtotime( $date ) ); // Repeater field $rows = itsmfp_get_repeater( $post_id, 'itsmfp_ingredients' ); foreach ( $rows as $row ) { echo esc_html( $row['ingredient_name'] ?? '' ); }
Layout Builder / Templates
Go to FlexiPost → Templates to design how your content looks on the frontend — no PHP template files needed.
Template Types
| Type | URL | Purpose |
|---|---|---|
| Archive | yoursite.com/books/ | Lists all posts |
| Single | yoursite.com/books/my-book/ | Individual post page |
Layout Blocks
| Block | Description |
|---|---|
| Post Title | Heading tag selector: H1–H4, P |
| Post Content | Full post_content |
| Excerpt | Post excerpt |
| Featured Image | Size selector: thumbnail / medium / large / full |
| Post Meta | Toggle: Date, Author |
| Custom Field | Select field from dropdown — renders the value |
| Custom HTML | Free-form HTML with template tag support |
| Columns | Two-column layout wrapper |
Template Tags
Use these inside Custom HTML blocks:
{{title}} Post title
{{content}} Full post content
{{excerpt}} Post excerpt
{{thumbnail}} Featured image HTML
{{date}} Publish date
{{author}} Author name
{{permalink}} Post URL
{{id}} Post ID
{{meta.field_key}} Custom field value
{{taxonomy.genre}} Taxonomy terms (comma-separated)
Example Custom HTML Block
<div class="book-card"> <div class="cover">{{thumbnail}}</div> <h2>{{title}}</h2> <p class="author">by {{meta.author_name}}</p> <p class="genre">{{taxonomy.genre}}</p> <a href="{{permalink}}">View Book →</a> </div>
Module Library
One-click installs that create the post type, taxonomies, fields, and default layout all at once.
Showcase team with photo, position, bio, social links.
Projects with filterable categories and lightbox.
Customer reviews with star rating and company info.
Upcoming events with date, venue, and ticket links.
Accordion-style frequently asked questions.
Library with author, genre, ISBN, and rating.
Services grid with icon, description, and price.
Auto-scrolling client or partner logos.
Job board with location, salary, and deadline.
Real estate listings with full detail fields.
Online course catalog with instructor and curriculum.
Recipe cards with ingredients and cook time.
Shortcodes
Basic Usage
[cpt_display module="post-type-slug"]
All Parameters
| Parameter | Values | Default | Description |
|---|---|---|---|
module required | Post type slug | — | Which post type to display |
layout | grid list masonry slider | grid | Display style |
columns | 1–6 | 3 | Columns per row |
per_page | integer | 9 | Posts per page |
orderby | date title menu_order rand | date | Sort field |
order | ASC DESC | DESC | Sort direction |
show_thumbnail | true false | true | Featured image |
show_title | true false | true | Post title |
show_date | true false | true | Publish date |
show_excerpt | true false | true | Excerpt text |
taxonomy optional | Taxonomy slug | — | Filter by taxonomy |
term optional | Term slug | — | Filter by specific term |
Examples
// Grid with 3 columns [cpt_display module="portfolio" layout="grid" columns="3"] // Slider testimonials [cpt_display module="testimonial" layout="slider" per_page="10"] // Events — soonest first [cpt_display module="event" orderby="date" order="ASC" per_page="6"] // Filter by taxonomy [cpt_display module="portfolio" taxonomy="portfolio-category" term="web-design"] // Random 3, no date [cpt_display module="team-member" columns="3" orderby="rand" per_page="3" show_date="false"]
PHP Usage
<?php echo do_shortcode( '[cpt_display module="portfolio" layout="grid" columns="3"]' ); ?>
Gutenberg Block
FlexiPost registers two native Gutenberg blocks.
CPT Display Block
Post Type, Layout, Columns, Posts per page, Order. Renders live preview.
Submission Form Block
Lets logged-in users submit posts from any page built in Gutenberg.
| Attribute | Description |
|---|---|
| Post Type | Which post type users can submit to |
| Show Title | Show or hide the form heading |
Elementor Widget
Two Elementor widgets are registered when Elementor is active.
| Widget | Purpose |
|---|---|
| CPT Display | Gallery with full Elementor style controls — typography, spacing, colors, borders, responsive |
| Submission Form | Frontend post submission form with full style control |
Find both widgets by searching FlexiPost in the Elementor widget panel.
Frontend Submission Form
Allow logged-in users to create posts from the frontend without accessing the WordPress admin.
Shortcode
[itsmfp_submit_form post_type="books"]
How It Works
Post title, content (if post type supports editor), and all custom fields.
FlexiPost verifies nonce, checks role permission, sanitises all input.
pendingOr publish for users with the publish_posts capability.
Import / Export
Exporting
Go to FlexiPost → Settings → Export. Downloads a .json file containing all post types, taxonomies, field groups, fields, and templates.
Import Modes
| Mode | Behaviour |
|---|---|
| Merge | Adds imported items alongside existing ones. Skips items with the same slug. |
| Overwrite | Replaces existing items with the same slug. Keeps items not in the import file. |
Starter Templates
Apply a pre-built configuration from Settings → Starter Templates:
Settings
Go to FlexiPost → Settings.
General Tab
| Setting | Default | Description |
|---|---|---|
| Delete data on uninstall | Off | ⚠️ If enabled, all FlexiPost tables and options are deleted on plugin removal |
| Debug mode | Off | Extra logging — development use only |
| Submit Roles | read | Which user roles can use the frontend submission form |
Style Tab
| Setting | Default | Description |
|---|---|---|
| Load CSS globally | Off | Enable if embedding shortcodes in widget areas |
| Enable lazy loading | On | Adds loading="lazy" to images |
| Ajax pagination | On | Page loads without full reload |
| Thumbnail size | medium | Default image size for thumbnails |
| Default columns | 3 | Default grid columns if not in shortcode |
| Default per page | 9 | Default posts per page |
AI Post Type Generator
Describe your content in plain English — AI builds a complete post type with fields and taxonomies.
Supported Providers
Setup
REST API Reference
Base URL: /wp-json/itsmfp/v1/
Auth: Include X-WP-Nonce header. User must have manage_options capability.
Post Types
Taxonomies
Fields
Utilities
Developer Reference
Helper Functions
// Get a single field value $value = itsmfp_get_field( 'isbn_number', $post_id ); // Get repeater rows $rows = itsmfp_get_repeater( $post_id, 'itsmfp_ingredients' ); foreach ( $rows as $row ) { echo esc_html( $row['ingredient_name'] ?? '' ); } // Render a gallery programmatically echo itsmfp_cpt_display([ 'module' => 'portfolio', 'layout' => 'grid', 'columns' => 3, 'per_page' => 6, ]);
Hooks & Filters
| Hook | Type | Description |
|---|---|---|
itsmfp_ai_enabled | Filter | Enable AI generator (returns false by default) |
itsmfp_shortcode_query_args | Filter | Modify WP_Query args used by shortcode |
itsmfp_submit_form_success_message | Filter | Customise submission success message |
itsmfp_field_render_{type} | Filter | Override field rendering in the meta box |
itsmfp_after_post_submitted | Action | Fires after successful frontend submission |
itsmfp_after_module_installed | Action | Fires after a module is installed |
Constants
| Constant | Value |
|---|---|
ITSMFP_VERSION | Plugin version string |
ITSMFP_DIR | Absolute path to plugin directory |
ITSMFP_URL | URL to plugin directory |
ITSMFP_FILE | Absolute path to main plugin file |
ITSMFP_DB_VERSION | Database schema version |
Template Override System
Customise any FlexiPost template from your theme — overrides are never lost on plugin update.
How It Works
// Plugin template (DO NOT edit directly) /wp-content/plugins/flexipost/modules/team-member/templates/grid.php // Your theme override (edit this) /wp-content/themes/your-theme/flexipost/team-member/grid.php
FlexiPost checks for a theme override before using its own template. Copy the file → edit the copy → done.
Available Template Variables
$post // WP_Post object $fields // Array of field objects $atts // Shortcode attributes array $post_type // Post type slug string // Retrieve field values: $value = get_post_meta( $post->ID, 'itsmfp_field_key', true );
Troubleshooting
Custom post types not showing on frontend
Fields not saving in the editor
Check these in order:
- Field slug contains non-ASCII characters → check Field Groups for the warning banner
- Nonce expired → refresh the page and try again
- PHP error intercepting the save → check your PHP error log
Shortcode shows nothing
Verify:
- The module slug matches exactly (case-sensitive)
- You have published posts of that post type
- Post type is set to Public
- Try
per_page="100"to rule out pagination hiding results
Admin shows a blank screen
AI Generator not available
Check: valid API key saved in Settings → AI, the key has been verified with the Verify button, and you have FlexiPost Pro active.
Uninstall deleted my data
Still need help?
Post in the WordPress.org support forum and we'll get back to you.
Open Support Forum ↗