Repeater
A Repeater holds rows, and every row has the same fields. Use it for lists of structured items: opening hours (day, opens, closes), a team (name, role, photo), a price list (item, price).
Settings
- Sub Fields: the fields in each row.
- Minimum rows and Maximum rows. Both are warnings, not hard limits.
- Add row label: the text on the add button, such as "Add opening hours".
- Default row label and Dynamic row label: collapsed rows are titled "Row 1", "Row 2" by default. Pick a sub-field as the dynamic label and each row shows its value instead, so editors see "Monday", "Tuesday".
Editors can drag rows into order, collapse them, and duplicate or remove them.
Displaying rows
Loop over a repeater with a data loop in the block editor or a query loop in Bricks, and each row's fields become available inside the loop.
Repeater or something else?
- If each item needs only one short text, a List is simpler.
- If rows should look like a spreadsheet, use a Field Table.
- If rows need different fields depending on their kind, use Content sections.
- If each row is really its own thing, with its own page, make it a post type and link to it with a relation.
Technical details for LLMs
- Type key:
repeater. Settings:fields,min_rows,max_rows(advisory),add_row_label(default "Add Row"),row_label(default "Row"),dynamic_row_label(sub-field key). No column setting. - Stored: one meta value under the repeater key holding the ordered rows, each keyed by sub-field key.
- Abilities write: the full row array replaces the stored rows.
- VX Script: a loopable list;
@post(hours)in a loop, or aggregate with modifiers.