Nested Repeater Fields with Pagination Enabled Do Not Save Correctly
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
Research direction
Start with the supplied nested Repeater JSON and reproduce the save flow in the WordPress backend using pagination on both Repeater fields. Compare the nested values before saving and after reopening the page; done means inner Repeater content is retained and displayed correctly. No source file or test is named in the issue, so locating the relevant save path and adding regression coverage will require project research.
Written by the indexing model from the issue text.
Description
Describe the bug
When two nested ACF fields (both of type Repeater) have the option "pagination": 1 enabled, the inner field content is no longer saved correctly. The data appears to be lost or overwritten during save.
To Reproduce
Steps to reproduce the behavior:
- Create a Repeater field (Parent Repeater).
- Inside this field, add another Repeater field (Child Repeater).
- Enable
"pagination": 1for both Repeater fields. - Add content to both fields in the WordPress backend.
- Save the post.
- Reopen the post and check the values — the inner Repeater content is missing or not saved correctly.
Expected behavior
The values entered in both nested Repeater fields (with pagination enabled) should be saved and displayed correctly after saving the post.
Screenshots or Video
N/A — the issue is data-related and occurs upon save.
Code
You will find attached the exported JSON of the relevant ACF field group that reproduces the issue. (Attach your JSON export when submitting the ticket.)
Version Information:
- WordPress Version: 6.8.1
- ACF PRO Version: 6.4.2
- PHP Version: 8.1.x
- Browser: Chrome (latest)
JSON:
{
"key": "group_5e67884841724",
"title": "Fieldgroup XYZ",
"fields": [
{
"key": "field_5e67889ad8b2a",
"label": "Flexible Content",
"name": "flexible_content",
"aria-label": "",
"type": "flexible_content",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"allow_in_bindings": 0,
"wpml_cf_preferences": 2,
"admin_only": 0,
"exclude_customer": 0,
"layouts": {
"layout_6604371afv5cd7": {
"key": "layout_6604371afv5cd7",
"name": "layout_xyz",
"label": "Layout XYZ",
"display": "block",
"sub_fields": [
{
"key": "field_68042e0594df7",
"label": "Repeater 1",
"name": "repeater_1",
"aria-label": "",
"type": "repeater",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"allow_in_bindings": 0,
"wpml_cf_preferences": 2,
"admin_only": 0,
"exclude_customer": 0,
"collapsed": "",
"pagination": 0,
"min": 1,
"max": 0,
"layout": "block",
"button_label": "Add Item Repeater 1",
"rows_per_page": 20,
"sub_fields": [
{
"key": "field_66265bd4e88e9",
"label": "Repeater 2",
"name": "repeater_2",
"aria-label": "",
"type": "repeater",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"allow_in_bindings": 0,
"admin_only": 0,
"exclude_customer": 0,
"collapsed": "",
"pagination": 0,
"min": 1,
"max": 10,
"layout": "row",
"button_label": "Add Item Repeater 2",
"rows_per_page": 20,
"parent_repeater": "field_68042e0594df7",
"sub_fields": [
{
"key": "field_662b9e12d3a7f",
"label": "Media-File",
"name": "media_file",
"aria-label": "",
"type": "file",
"instructions": "",
"required": 1,
"conditional_logic": 0,
"wrapper": {
"width": "50",
"class": "",
"id": ""
},
"allow_in_bindings": 0,
"wpml_cf_preferences": 2,
"admin_only": 0,
"exclude_customer": 0,
"return_format": "array",
"preview_size": "thumbnail",
"library": "all",
"min_width": "",
"min_height": "",
"min_size": "",
"max_width": "",
"max_height": "",
"max_size": "",
"mime_types": "mp3",
"parent_repeater": "field_66265bd4e88e9"
}
]
}
]
}
],
"min": "",
"max": ""
}
},
"button_label": "",
"min": "",
"max": ""
}
],
"location": [
[
{
"param": "post_type",
"operator": "==",
"value": "page"
}
]
],
"menu_order": 1,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": true,
"description": "",
"show_in_rest": 0,
"modified": 1750158065
}
- Dominant language
- PHP
- Stars
- 947
- Forks
- 198
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from AdvancedCustomFields/acf
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
AdvancedCustomFields/acf#1056 ·
-
PHP 8.5: "Using null as an array offset" deprecation in ACF_Data::is() when rendering a block with empty data (local-meta.php is_request)Possibly taken @faisalahammad claimed this 30 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
AdvancedCustomFields/acf#1044 ·
-
is_preview was called incorrectly notice on every early get_field() since 6.8.10 (acf_revisions::acf_validate_post_id)Possibly taken @faisalahammad claimed this 30 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
AdvancedCustomFields/acf#1041 · 1 comment ·
-
True / False ACF control bug on RTL layoutsPossibly taken @elicohenator claimed this 53 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
AdvancedCustomFields/acf#1038 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
AdvancedCustomFields/acf#1034 · 3 comments ·
All issues in AdvancedCustomFields/acf
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 3 days
-
sync-en
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
[Sync EN] Formatting improvements to "Large Objects (LOBs)" docs (#6056)Possibly taken A pull request linked to this issue is open or already merged. Opensync-en
Difficulty 1/5 Under an hour Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
Перевод устарел
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
Maintainers usually reply within 1 day
-
repo:cms
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
craftcms/cms#20613 · 1 comment ·
Maintainers usually reply within 1 day