The plan to redesign and republish has taken a major shift. 2027 will see the return of the FlyingW moniker and the sunsetting of UplinkPress.

An ACPT repeater can contain all the right content and still produce an empty gallery in Etch. The missing piece is often the data path.

ACPT exposes resolved field data under an acpt key. For an image-and-caption repeater, that gives Etch a list of rows containing image properties and their matching captions.

Start your loop with that resolved data.

The example setup

This guide uses a project portfolio with the following structure:

SettingName
Custom post typework
ACPT meta boxmeta_box_title
Repeater fieldgallery_images
Image field inside the repeatergallery_image
Text field inside the repeatercaption

Assign the ACPT field group to the Work post type, then add a few repeater rows to a Work post. Each row should contain an image and a caption.

The resolved repeater key combines the box name and field name:

meta_box_title_gallery_images

That key sits under acpt.

Displaying the gallery on a single Work template

On a single Work template, this refers to the current project. Use its resolved ACPT repeater as the loop source:

HTML
{#loop this.acpt.meta_box_title_gallery_images as row}
  <figure>
    <img
      src="{row.gallery_image.value.src}"
      alt="{row.gallery_image.value.alt}"
    >
    <figcaption>{row.caption.value}</figcaption>
  </figure>
{/loop}

Each iteration represents one repeater row.

The image URL comes from:

row.gallery_image.value.src

The image’s alt text comes from:

row.gallery_image.value.alt

The caption comes from:

row.caption.value

The caption is already part of the same row as its image, so no separate index is needed to keep them paired.

If you configure the loop through Etch’s controls, use this target without curly braces:

HTML
this.acpt.meta_box_title_gallery_images

Set the loop item name to row, then use the image and caption bindings shown above.

Displaying galleries inside a list of projects

A project listing needs two loops:

  1. An outer post query that retrieves Work posts.
  2. An inner loop that retrieves each project’s gallery rows.

Suppose the outer query is named workProjects and its item alias is project:

HTML
{#loop workProjects as project}
  <article>
    <h2>{project.title}</h2>

    {#loop project.acpt.meta_box_title_gallery_images as row}
      <figure>
        <img
          src="{row.gallery_image.value.src}"
          alt="{row.gallery_image.value.alt}"
        >
        <figcaption>{row.caption.value}</figcaption>
      </figure>
    {/loop}
  </article>
{/loop}

Replace workProjects with the key of your saved post query.

The inner source starts with project because it belongs to the current item in the outer loop. If your outer alias is post, the source becomes:

HTML
post.acpt.meta_box_title_gallery_images

If it is item, use:

HTML
item.acpt.meta_box_title_gallery_images

The alias must match the name declared after as. Etch’s loop documentation explains how those item names provide the context for dynamic bindings.

Why the metadata preview can be confusing

When inspecting a post’s data, you may find the repeater under a path such as:

meta.meta_box_title_gallery_images

Its value may begin with something like:

a:2:

That is PHP’s serialized representation of the stored data.

ACPT’s acpt integration provides another representation intended for use in the builder: resolved repeater rows with image objects and caption values.

For this example, the useful source is:

this.acpt.meta_box_title_gallery_images

You don’t need to unserialize the raw metadata or loop through separate image and caption lists when the resolved ACPT data is available.

If the gallery is still empty

Check these details before changing the query.

The field group is assigned to Work

ACPT checks field-group visibility when exposing resolved fields. Confirm that the group applies to the post type you are querying.

Stored metadata can exist even when the group’s assignment prevents it from appearing in the resolved acpt data.

The post contains saved repeater rows

Inspect a Work post that has populated rows. A valid post query can return a project with no gallery content.

The names match your installation

The example uses:

meta_box_title_gallery_images

Your box or repeater may have a different name. Use the actual field names rather than assuming the visible labels are identical.

The child bindings must also match your image and caption field names.

The loop uses the correct context

On the current single project, use this.acpt.

Inside an outer project loop, use that loop’s item alias, such as project.acpt.

The attachment has appropriate alt text

The alt binding reads the resolved image object’s alt value. It can be empty if no alt text has been supplied.

Add suitable alt text for images that convey information. A project caption and an image’s alt text serve different purposes, so review them separately.

Validation

The guide validated the resolved ACPT paths on October 28, 2026, using the installed ACPT build, Etch 1.7.1, and WP 7.1.3.

The test created an assigned ACPT field group with two image-and-caption rows. Etch’s server renderer produced both figures with their matching image URLs, alt attributes, and captions using both this.acpt and a nested post-loop alias.

This was a server-rendering validation rather than a visual HTML-editor test.