A Group field bundles several related fields together into a single, organized unit. While a Repeater lets editors add multiple rows of data, a Group always contains exactly one set of sub-fields. It is the right choice when you have fields that naturally belong together and only appear once — like an address block, a call-to-action section, or a contact information card.
Groups serve two purposes. First, they organize the editing experience by visually grouping related fields inside a bordered container. Second, they organize your data structure — grouped fields are stored together, making it cleaner for your developer to work with in theme templates.
When to Use a Group vs. Separate Fields
You might wonder why you need Groups at all. After all, you could just add Street, City, State, and ZIP as four separate fields in your field group. Here is why Groups are better:
| Without a Group | With a Group |
|---|---|
| Street, City, State, ZIP appear as four separate fields mixed in with other fields | Street, City, State, ZIP appear inside a bordered “Address” container, visually distinct from other fields |
Your developer references each field individually: get_field('street'), get_field('city') | Your developer references the group: get_field('address') and gets all four values as a structured array |
If you have an address AND a billing address, field names get confusing: street, billing_street | Clean nesting: address.street and billing_address.street |
| Adding a new address-related field means finding the right spot among all the fields | Adding a new field inside the Address group keeps everything together |
Step-by-Step: Building a Contact Information Group
The scenario: You run a multi-location business. Each location is a custom post type, and every location needs contact information: phone number, email address, office hours, and a Google Maps embed URL. These four pieces of data logically belong together as “Contact Info.”- Go to Field Forge > New Field Group
- Enter the title: Location Details
- Click Add Field and choose Group from the field type grid (under “Compound Fields,” PRO badge)
- Configure the Group:
– Name: contact_information
– Instructions: Enter the contact details for this location. All fields are displayed in the location’s sidebar and footer.
– Layout: Block (shows the group as a bordered card with sub-fields inside)
- Add sub-fields inside the Group:
– Label: Phone Number
– Name: phone_number
– Required: Yes
– Placeholder: “(555) 123-4567”
– Wrapper Width: 50%
– Click Add Sub Field, choose Email:
– Label: Email Address
– Name: email_address
– Required: Yes
– Placeholder: “[email protected]”
– Wrapper Width: 50%
– Click Add Sub Field, choose Textarea:
– Label: Office Hours
– Name: office_hours
– Instructions: Enter hours in a readable format, e.g., “Mon-Fri: 9am-5pm, Sat: 10am-2pm, Sun: Closed”
– Rows: 3
– Wrapper Width: 100%
– Click Add Sub Field, choose URL:
– Label: Google Maps Link
– Name: google_maps_link
– Instructions: Paste the Google Maps URL for this location. Go to Google Maps, find the location, click Share, and copy the link.
– Wrapper Width: 100%
- Now add a second Group field in the same field group for the address:
– Label: Physical Address
– Name: physical_address
– Add sub-fields: Street Address (text, 100%), City (text, 40%), State (select, 30%), ZIP Code (text, 30%)
- Set the location rule: Post Type is equal to Location
- Click Save Field Group
[Screenshot: the Location Details field group editor showing two Group fields — “Contact Information” with phone, email, hours, and maps link sub-fields, and “Physical Address” with street, city, state, and ZIP sub-fields arranged in a multi-column layout]
How Editors Use a Group
When a content manager opens a Location post, they see the “Location Details” metabox containing two bordered sections: “Contact Information” and “Physical Address.” Each section is clearly labeled and contains its own set of fields. The editor fills in each field just like any other field — there is no “Add Row” button because a Group always contains exactly one set of data.
The key difference from regular fields is visual: the bordered container makes it immediately clear which fields relate to contact info and which relate to the address. Without Groups, all eight fields would appear as a flat list, and it would not be obvious that Phone and Email belong together while Street and City belong together.
Groups vs. Repeaters — A Decision Guide
This is the most common question from people setting up field groups. Here is a clear decision framework:
| Ask Yourself | If the Answer Is… | Use |
|---|---|---|
| How many sets of this data will there be? | Always exactly one (one address, one CTA) | Group |
| How many sets of this data will there be? | It varies — could be 1, 5, or 50 (team members, FAQs) | Repeater |
| Can editors add more of these? | No — there is always one contact info block per location | Group |
| Can editors add more of these? | Yes — they can add more team members as the company grows | Repeater |
| Does this data represent a “section” or a “list”? | A section (one Hero, one CTA) | Group |
| Does this data represent a “section” or a “list”? | A list (many FAQs, many testimonials) | Repeater |
Nesting Groups and Repeaters Together
Groups and Repeaters work beautifully together. Here are two common patterns:
Pattern 1: A Repeater where each row contains a GroupA “Services” page where each service has its own pricing block:
- Services (Repeater — multiple services)
– Service Description (textarea)
– Pricing (Group — one pricing block per service)
– Monthly Price (number)
– Annual Price (number)
– Currency (select)
– Includes Free Trial (true/false)
Pattern 2: A Group that contains a RepeaterA “Company Overview” section with a fixed header and a variable list of achievements:
- Company Overview (Group — one overview per page)
– Description (wysiwyg)
– Background Image (image)
– Key Achievements (Repeater — multiple achievements)
– Year (text)
– Achievement Title (text)
– Description (textarea)
Wrapper Width Tips for Groups
Use wrapper widths on sub-fields within a Group to create polished, form-like layouts:
| Layout Goal | Sub-field Widths |
|---|---|
| Two fields side by side | 50% + 50% |
| Three fields in a row | 33% + 33% + 34% |
| One large, one small | 70% + 30% |
| Full width below a row of small fields | First row: 33% + 33% + 34%, next field: 100% |
> What happens without PRO: Group fields require the PRO plan. Without them, you add related fields as separate top-level fields in the field group. They still work functionally, but you lose the visual grouping (the bordered container) and the structured data organization. For simple cases with 2-3 related fields, this is fine. For complex data models with multiple groups of related fields, Groups make the editing experience significantly cleaner.
> Tip: Name your Groups clearly. Instead of “Group 1” or “Details,” use specific names like “Contact Information,” “Physical Address,” or “Call to Action Settings.” The Group label appears as a section header in the editor, and clear names help editors immediately understand what each section is for.
> Common mistake: Using a Group when a Repeater is needed (or vice versa). If you create a Group for “Team Members” but then realize each page needs multiple team members, you will have to delete the Group and recreate it as a Repeater. Think about whether the data repeats before choosing.
—