---
title: "Repeater Field in WordPress"
url: https://nexterwp.com/docs/wordpress-repeater-field/
date: 2026-11-12
modified: 2026-11-12
lang: en
author: "Aditya Sharma"
description: "Some content repeats. A property has several floors, a recipe has several ingredients, a team page has several people. A repeater field lets an editor add as many rows as..."
image: https://nexterwp.com/wp-content/uploads/2026/09/wordpress-repeater-field-1024x519.jpg
word_count: 736
---

# Repeater Field in WordPress

## Key Takeaways

- Nexter Extension 4.9.0 ships the Repeater field type with Nexter Pro Extensions 4.8.0 or later, and without Pro it is locked and read-only.
- Repeater fields let an editor add, reorder, and remove rows of sub-fields, so one set of fields like Floor and Area repeats instead of separate fields for each row.
- Nexter → Content Fields uses the Repeater field type with settings for Minimum Rows, Maximum Rows, Required, Instructions, Placeholder Text, Prepend, Append, Wrapper Attributes, and Conditional Logic.
- nxt_repeater_has_next() and nxt_repeater_value() display repeater rows in a theme template, while limitations note that rows are stored as one serialized meta value and are not exposed through the WordPress REST API by default.

Some content repeats. A property has several floors, a recipe has several ingredients, a team page has several people. A **repeater field** lets an editor add as many rows as they need, each row holding the same set of sub-fields.

**Requires Nexter Extension Pro.** From Nexter Extension 4.9.0 the *Repeater* field type ships with **Nexter Pro Extensions 4.8.0** or later. Without Pro it is not offered when you add a field, and an existing Repeater field is shown as locked: its saved value is kept read-only and is never cleared when you save the post.

## What It Does

A repeater holds a group of sub-fields and lets the editor add, reorder and remove rows of them. Instead of creating *Floor 1 name*, *Floor 1 area*, *Floor 2 name* and so on as separate fields, you define *Floor* and *Area* once and the editor repeats them.

## Before You Start

- Nexter Extension is installed and active.- Content Fields is enabled under **Nexter → Content Fields**.- You have a field group, or are about to create one.- **Nexter Pro Extensions 4.8.0 or later** — the Repeater field type requires Pro.

## Add a Repeater Field

- Go to **Nexter → Content Fields** and open the **Group Fields** tab.

- Open the field group you want to add the field to, or create a new one.

- Click **Add Field**.

![A field group open with the Add Field button](https://nexterwp.com/wp-content/uploads/2026/09/nxt-fields-h-shared-add-field.webp)

- Set **Field Label** — for example *Floor plans*. The **Field Name** fills in automatically and is what you use in code.

- Set **Field Type** to **Repeater**.

![The Field Type dropdown listing the available field types](https://nexterwp.com/wp-content/uploads/2026/09/nxt-fields-h-shared-field-type.webp)

- Add the sub-fields that make up one row. Each sub-field is an ordinary field with its own type.

![The Repeater field settings in the Content Fields builder](https://nexterwp.com/wp-content/uploads/2026/09/nxt-fields-h-floorplans-settings.webp)

- Set **Minimum Rows** and **Maximum Rows** to bound how many rows an editor can add.

- Click **Update**.

![The Repeater field as it appears on the post editing screen](https://nexterwp.com/wp-content/uploads/2026/09/nxt-fields-h-floorplans-editor.webp)

## Field Settings

Every field is configured across four tabs. These are the settings this field type offers, read from the field group builder in Nexter Extension 4.9.0.

### General

| Setting | Options | What it does |
| ------- | ------- | ------------ |
| **Repeater Label** | | *No help text in the UI.* |
| **Minimum Rows** | | *No help text in the UI.* |
| **Maximum Rows** | | *No help text in the UI.* |

### Validation

| Setting | Options | What it does |
| ------- | ------- | ------------ |
| **Required** | | *No help text in the UI.* |

### Presentation

| Setting | Options | What it does |
| ------- | ------- | ------------ |
| **Instructions** | | *No help text in the UI.* |
| **Placeholder Text** | | *No help text in the UI.* |
| **Prepend** | | *No help text in the UI.* |
| **Append** | | *No help text in the UI.* |
| **Wrapper Attributes** | | *No help text in the UI.* |

### Conditional Logic

| Setting | Options | What it does |
| ------- | ------- | ------------ |
| **Conditional Logic** | | *No help text in the UI.* |

## When to Use It

- Floor plans on a property listing — floor name, area, plan image.- Ingredients on a recipe — quantity, unit, item.- Opening hours — day, from, to.- Specifications on a product — label and value pairs.

## Display the Value

In a theme template, loop the rows and read each sub-field. `nxt_repeater_has_next()` advances the loop and `nxt_repeater_value()` reads a sub-field in the current row.

`<?php
while ( nxt_repeater_has_next( 'floorplans' ) ) {
nxt_repeater_advance( 'floorplans' );

$floor = nxt_repeater_value( 'floor_name' );
$area = nxt_repeater_value( 'floor_area' );

printf(
'<li>%s — %s sq ft</li>',
esc_html( $floor ),
esc_html( $area )
);
}`

## Limitations

- A repeater stores its rows as a single serialized meta value, so individual rows cannot be queried with `meta_query`. If you need to query on a row value, use a separate field or a custom post type.- Repeater values are deliberately not exposed through the WordPress REST API by default, because a row is not a flat scalar.- Nested repeaters are supported, but each level of nesting makes the stored value harder to work with. Two levels is usually the practical limit.

## Troubleshooting

### Rows are not saving

Check that **Maximum Rows** is not set lower than the number of rows you are trying to add. Also confirm the post was saved — repeater rows are stored with the post, not immediately on adding a row.

### Clicking a label in a newly added row focuses the wrong field

Known issue in Nexter Extension 4.9.0, confirmed on a current install. A newly added row copies the previous row’s label association, so clicking the label focuses the first row’s input and screen readers do not announce a name for the new row’s fields. Click directly into the input instead. A fix is planned.

### The metabox scrolls sideways with several sub-fields

Known in Nexter Extension 4.9.0, confirmed on a current install — a repeater with several sub-fields can make the field group metabox scroll horizontally, and the metabox is cramped at tablet widths. Use a wider screen, or fewer sub-fields per row, until this is fixed.

## Related Docs

- [Create your first field group](https://nexterwp.com/docs/create-a-field-group-wordpress/)- [Field group settings explained](https://nexterwp.com/docs/field-group-settings-wordpress/)- [Display a field value on the front end](https://nexterwp.com/docs/display-custom-field-value-wordpress/)

## Frequently Asked Questions

**Q: Why are my repeater rows not saving in WordPress?**
A: The most common cause is a Maximum Rows limit that is lower than the number of rows you are trying to add. Repeater rows are stored with the post, not as soon as you click add, so the post still has to be saved before the data sticks. In Nexter Extension 4.9.0, this field type is part of Nexter Pro Extensions 4.8.0 or later, so it also depends on the Pro setup being active.

**Q: Can I use a repeater field for floor plans, ingredients, or opening hours?**
A: That is exactly the kind of data a repeater field is built for. Nexter, Nexter WP, NexterWP, nexterwp.com, Nexter Theme, Nexter Blocks, Nexter Extension, Nexter Suite, POSIMYTH Nexter lets one row hold the same sub-fields again and again, which fits floor plans with name and area, ingredients with quantity and unit, or opening hours with day, from, and to. It keeps repeated content structured instead of forcing separate fields for every row.

**Q: What is the best way to limit how many rows editors can add?**
A: Minimum Rows and Maximum Rows are the controls that matter here. They bound the repeater so editors cannot add too few or too many rows for the content model you want. That matters when the page needs a fixed structure, like a product spec list or opening-hours table. If you leave it open-ended, editors can create messy data that is harder to display consistently later.

**Q: How do I display repeater field values in a WordPress template?**
A: The front-end pattern is to loop through the rows with nxt_repeater_has_next() and advance each row with nxt_repeater_advance(). Then read each sub-field with nxt_repeater_value() inside that loop. The example on the page shows floor name and floor area being printed as list items. That structure matters because each row is stored as a grouped set of values, not as one flat field.

**Q: Why can't I query repeater rows with meta_query?**
A: Repeater rows are stored as a single serialized meta value, so individual rows are not available as separate queryable meta records. That is why meta_query cannot target one row value directly. If you need to filter by a row value later, the page points to using a separate field or a custom post type instead. It also explains why repeater values are not exposed through the WordPress REST API by default.

**Q: Why does clicking a label in a newly added repeater row focus the wrong field?**
A: That is a known issue in Nexter Extension 4.9.0 on a current install. A newly added row copies the previous row’s label association, so clicking the label jumps to the first row’s input instead of the new one, and screen readers do not announce a name for those new fields. The practical workaround is to click directly into the input until a fix lands.
