Skip to main content

Custom Field Groups

Custom field groups let you define structured data fields that appear in the episode editor and attach to specific content types. You create the group once in Benecaster → Fields, define your fields, and then fill in values per episode.

Overview

A field group is a named collection of fields attached to a content type. The built-in content type is Episode; the Guest Manager add-on registers a second type, Guest. Once created, the group appears as a collapsible panel wherever that content type is edited — for Episode groups, that’s the More tab of the episode editor.

Common uses:

  • Guest information (name, booking URL, bio)
  • Sponsor details (name, URL, offer code)
  • Production notes (recording location, engineer, date)
  • Episode-specific links (show notes links, resource URLs)

Creating a Field Group

  1. Go to Benecaster → Fields in the WordPress admin sidebar.
  2. Click Add Field Group.
  3. Enter a name for the group (e.g. “Interview Info”).
  4. Set Attached to: “Episode” for episode-level fields; “Guest” if the Guest Manager add-on is active and you want fields on guest profiles.
  5. Add fields: give each field a label, choose a type, and mark it required if needed.
  6. Drag fields to reorder them.
  7. Click Save.

The group appears immediately in the More tab of all episodes.

Once a group is saved, each of its fields shows an ID in the first column of the field list, a small #N badge. Click it to copy the number. A field you have just added shows no ID until you save the group. You only need the ID if you are writing code against the field: see For Developers.

Field Types

Type Use for
Text Single-line text — names, codes, short labels
Textarea Multi-line text — bios, descriptions, notes
URL A web address — renders as a link on the episode page
Number Numeric values — episode number, word count, price
Date A date picker — recording date, air date
Select A dropdown with predefined options
Checkbox A set of checkboxes — multiple-select from predefined options

Select and checkbox fields include an Options section where you define the choices.

Required fields are marked with an asterisk (*) in the episode editor. Saving an episode with an empty required field is allowed — the asterisk indicates importance, not a hard block. Use required fields to signal to your team which fields matter most.

Filling in Values

Open any episode and click the More tab. Each field group you’ve created appears as a labelled, collapsible panel. Fill in values and click Save Episode (or Update) — field values save with the rest of the episode data in the same action.

You can fill in field values on new episodes before the first save. The fields are available immediately when you open a new episode draft — you don’t need to save the episode first to unlock them.

Field groups appear in the order set by their display order (drag to reorder in the group editor). Fields within each group appear in the order defined in that group.

Multiple Field Groups

You can create as many field groups as you need. Each group appears as a separate panel in the More tab. Groups can be reordered by adjusting the display order in Benecaster → Fields.

For Developers

Finding a field’s ID. benecaster_get_field() and benecaster_update_field() address a field by its numeric ID. Open Benecaster → Fields, edit the group, and click the #N badge in the ID column to copy it. IDs differ between sites, so keep the number in one constant or setting rather than scattering it through your code.

Read field values in PHP:

// All values for a group, keyed by field_key:
$fields = benecaster_get_fields( 'Interview Info', $episode_id );
$guest_name = $fields['guest_name'] ?? null;

// A single field value by ID:
$guest_name = benecaster_get_field( 15, $episode_id );

Write a field value in PHP:

// Set a value by field ID:
benecaster_update_field( 15, $episode_id, 'Sarah Chen' );

// Pass null to clear it:
benecaster_update_field( 15, $episode_id, null );

The write goes through the same store as the episode editor, so the hooks below fire for it too. The field’s group has to be attached to the object’s content type. If it is not, or the field ID does not exist, nothing is written and WordPress logs a _doing_it_wrong() notice.

Hooks:

Register a CPT with the field system (add-ons):

add_action( 'benecaster_boot', function( $container ) {
    benecaster_register_field_cpt( 'benecaster_guest', __( 'Guest', 'my-addon' ) );
} );

See the developer documentation for full API details: benecaster_get_field, benecaster_get_fields, benecaster_update_field, benecaster_field_groups, benecaster_field_value, benecaster_field_value_saved, benecaster_episode_field_values_updated.

See Also

Need this built rather than just documented? See our services →