Field Types
30+ Field Types, Ready to Use
Every field you need to build expressive, editor-friendly blocks — from basic text inputs to complex repeaters and inner block containers.
Get Started FreeEvery Field Type at a Glance
All fields are available in every pricing plan. No field types locked behind higher tiers.
Text & Input
Text
Single-line text input for headings, names, labels.
Textarea
Multi-line plain text, ideal for short descriptions.
Rich Text (WYSIWYG)
Full editor with formatting — bold, italic, links, lists.
Number
Numeric input with optional min/max/step constraints.
URL
URL field with automatic validation.
Email address field with format validation.
Media
Image
Select or upload a single image from the Media Library.
Gallery
Multi-image gallery with drag-to-reorder.
File Upload
Upload any file type and return the attachment URL.
oEmbed
Embed video, audio, or any oEmbed-compatible URL.
Choice
Select
Dropdown with configurable options.
Radio
Single-choice radio buttons.
Checkbox
Multiple-choice checkboxes, returns an array.
Toggle / Switch
Boolean on/off toggle.
Button Group
Visual button-style option selector.
Advanced
Repeater
Add unlimited rows of structured sub-fields.
Inner Blocks
Nest any Gutenberg blocks inside your custom block.
Flexible Content
Choose from multiple layout variants per row.
Relationship
Link to other posts, pages, or CPTs.
Post Object
Select a single post or page.
Taxonomy
Select terms from any registered taxonomy.
User
Select a WordPress user.
Utility
Color Picker
RGB/HEX/HSL colour selector with opacity support.
Range Slider
Numeric slider with configurable min/max/step.
Date Picker
Calendar date selector with configurable format.
Time Picker
Time selector in 12 or 24-hour format.
Icon Picker
Select from Dashicons or a custom icon set.
Deep Dive
Repeater Fields
Repeaters let editors add unlimited rows of structured content. Each row contains the same sub-fields you define — perfect for team members, FAQ items, gallery captions, and pricing features.
- ✓Unlimited rows per block instance
- ✓Drag-to-reorder rows in Gutenberg
- ✓Any field type can be a sub-field
- ✓Min/max row limits configurable
- ✓Nested repeaters supported
Example: Looping over a repeater in a PHP template
<?php if (!empty($fields['team_members'])) : ?>
<div class="team-grid">
<?php foreach ($fields['team_members'] as $member) : ?>
<div class="team-card">
<?php if (!empty($member['photo'])) : ?>
<img src="<?php echo esc_url($member['photo']['url']); ?>"
alt="<?php echo esc_attr($member['name']); ?>">
<?php endif; ?>
<h3><?php echo esc_html($member['name']); ?></h3>
<p><?php echo esc_html($member['role']); ?></p>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>Deep Dive
Inner Blocks
The Inner Blocks field turns your custom block into a block container — editors can drop any Gutenberg block inside it. Ideal for cards with editable content, tabbed sections, or hero areas where the inner content needs full editing flexibility.
- ✓Accepts any block type by default
- ✓Restrict allowed blocks per instance
- ✓Template lock support
- ✓Combine with other BF Blocks fields on the same block
- ✓Renders correctly in FSE themes
Example: Rendering Inner Blocks in a PHP template
<div class="card" style="background: <?php
echo esc_attr($fields['background_color']);
?>">
<h2><?php echo esc_html($fields['card_title']); ?></h2>
<!-- Inner Blocks renders here -->
<div class="card-body">
<?php echo $fields['inner_blocks']; ?>
</div>
</div>Every Field Renders Front and Back
Every field in BF Blocks renders correctly in both the Gutenberg editor and on your front end — no extra configuration needed. What editors see while building is what visitors see on the published page.
Build Blocks With Any Field Type
All 30+ field types included in every plan.