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 Free

Every 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

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.