> For the complete documentation index, see [llms.txt](https://docs.acpt.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.acpt.io/integrations/divi/divi-5-dynamic-tags-integration.md).

# Divi 5 — Dynamic Tags Integration

ACPT integrates with **Divi 5's Dynamic Tags** system, allowing you to bind any ACPT custom field value directly to Divi 5 module settings. This is the recommended approach for using ACPT with Divi 5, as it is fully native, performant, and does not rely on shortcodes.

> **Note:** The legacy ACPT Divi module (Divi 4 compatible) is still available but will appear as a "Legacy" module inside Divi 5. For new projects, we recommend using Dynamic Tags instead.

***

### Requirements

* ACPT **2.x** or later
* Divi **5.0** or later
* At least one **Meta Box** with fields assigned to a post type

***

### How it works

Divi 5 allows any text-based module setting (headings, text, URLs, image sources, button links, etc.) to be populated dynamically at render time. ACPT registers a custom dynamic tag source called **"ACPT dynamic data"** which exposes all your custom fields to Divi's dynamic tag picker.

When a page is rendered, Divi resolves the tag and ACPT returns the correct field value for the current post.

***

### Connecting a field to a module

1. Open the **Divi 5 Visual Builder** on any post or page.
2. Add or select a module (e.g. a **Text**, **Heading**, or **Button** module).
3. Click the **dynamic tag icon** (looks like a database icon `{}`) next to any text or URL setting.
4. In the dynamic tag panel, select **"ACPT dynamic data"** from the source list.

<figure><img src="https://3235524095-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fiyf0tSKPgXiyoQ3zV3I6%2Fuploads%2Fgit-blob-660c7712f3275bc65b004b24b55ae68eee23d87a%2Fdivi5-dynamic-tag-source-picker.png?alt=media" alt=""><figcaption><p>Divi 5's dynamic content picker, with "ACPT dynamic data" listed as a source</p></figcaption></figure>

5. Use the **"Select the field"** dropdown to choose your ACPT field. Fields are grouped by their assigned post type or option page.

<figure><img src="https://3235524095-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fiyf0tSKPgXiyoQ3zV3I6%2Fuploads%2Fgit-blob-8c849111019335aceffdd159090e832d16fe8319%2Fdivi5-select-field-dropdown.png?alt=media" alt=""><figcaption><p>The field dropdown, grouped by post type</p></figcaption></figure>

6. Configure the additional options (see below) and click **Apply**.

<figure><img src="https://3235524095-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fiyf0tSKPgXiyoQ3zV3I6%2Fuploads%2Fgit-blob-9b19c3b0fd617fb5be03efbd8d32d214cc271b16%2Fdivi5-connected-field-result.png?alt=media" alt=""><figcaption><p>A Text module's Body field connected to an ACPT URL field, rendered as a link in the canvas</p></figcaption></figure>

***

### Available options

Once you select a field, the following options become available in the dynamic tag panel:

#### Before / After

Free text prepended or appended to the resolved value. Useful for adding labels, units, or punctuation.

```
Before: "Price: "    After: " EUR"
→ Output: "Price: 42.00 EUR"
```

#### Display as

Controls how the field value is rendered. Available options depend on the field type but include:

| Value        | Description                                                   |
| ------------ | ------------------------------------------------------------- |
| `Default`    | The standard rendered output for the field type               |
| `URL only`   | Returns only the raw URL (useful for button links, image src) |
| `Label only` | Returns only the human-readable label                         |
| `Linked`     | Wraps the value in an `<a>` tag                               |
| `Raw value`  | Returns the unformatted raw value, bypassing any formatting   |

<figure><img src="https://3235524095-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fiyf0tSKPgXiyoQ3zV3I6%2Fuploads%2Fgit-blob-7397b2deb249a6b257bfd338a7a6b513de3105b3%2Fdivi5-display-as-options.png?alt=media" alt=""><figcaption><p>The "Display as" dropdown</p></figcaption></figure>

#### List style

For multi-value fields (Checkbox, Select Multi, List, Post Object Multi, etc.) controls the list output format:

| Value            | Description                      |
| ---------------- | -------------------------------- |
| `Inline`         | Comma-separated values (default) |
| `Unordered list` | Renders an HTML `<ul>`           |
| `Ordered list`   | Renders an HTML `<ol>`           |

#### Date format

For date and time fields, override the saved date format. Accepts any valid [PHP date format string](https://www.php.net/manual/en/datetime.format.php) (e.g. `d/m/Y`, `F j, Y`).

#### Enable Raw HTML *(admin only)*

For **Editor** and **Textarea** fields, when set to **Yes** the raw HTML is output without sanitization. Only available to users with the `unfiltered_html` capability.

***

### Field type reference

The table below shows how each ACPT field type behaves with the dynamic tag, and which **Display as** options are relevant.

| Field type                     | Default output      | URL               | Label          | Link                   | Raw           |
| ------------------------------ | ------------------- | ----------------- | -------------- | ---------------------- | ------------- |
| Text / Number / Select / Radio | The raw value       | —                 | —              | —                      | ✓             |
| Textarea                       | Sanitized text      | —                 | —              | —                      | ✓ (HTML)      |
| Editor                         | Sanitized HTML      | —                 | —              | —                      | ✓ (HTML)      |
| URL                            | `<a href>` link     | ✓ URL only        | ✓ Label only   | ✓                      | ✓             |
| Email                          | Raw email address   | ✓ `mailto:`       | —              | ✓ `<a href="mailto:">` | ✓             |
| Phone                          | Dial + number       | ✓ `tel:`          | —              | ✓ `<a href="tel:">`    | ✓ number only |
| Image / Video / Audio          | Rendered media      | ✓ src URL         | ✓ title        | ✓ linked               | ✓             |
| Gallery / Image Slider         | All items rendered  | —                 | —              | —                      | ✓ src only    |
| File                           | `<a>` download link | ✓ src URL         | ✓ label        | ✓                      | ✓             |
| Date / Time / DateTime         | Formatted date      | —                 | —              | —                      | —             |
| Date Range                     | `from - to`         | ✓ from only       | ✓ to only      | —                      | —             |
| Post Object                    | `<a>` to post       | ✓ permalink       | ✓ title        | ✓                      | ✓             |
| Post Object Multi              | List of links       | ✓                 | ✓ titles       | ✓                      | ✓             |
| Term Object                    | `<a>` to term       | ✓ term URL        | ✓ name         | ✓                      | ✓             |
| Term Object Multi              | List of links       | ✓                 | ✓ names        | ✓                      | ✓             |
| User                           | `<a>` to author     | ✓ author URL      | ✓ display name | ✓                      | ✓             |
| User Multi                     | List of links       | ✓                 | ✓ names        | ✓                      | ✓             |
| Checkbox / Select Multi / List | Comma-separated     | —                 | —              | —                      | —             |
| Currency                       | Amount + unit       | —                 | ✓ unit only    | —                      | ✓ amount only |
| Weight / Length                | Value + unit        | —                 | ✓ unit only    | —                      | ✓ value only  |
| Address                        | Full address        | ✓ Google Maps URL | —              | —                      | —             |
| Country                        | Country value       | —                 | —              | —                      | —             |
| Rating                         | X/5                 | —                 | —              | —                      | —             |
| QR Code                        | QR image            | ✓ raw URL         | —              | —                      | —             |
| Barcode                        | SVG barcode         | —                 | —              | —                      | ✓ text only   |
| Table                          | Rendered HTML table | —                 | —              | —                      | —             |

***

### Usage examples

#### Display a URL field as a button link

1. Add a **Button** module.
2. Click the dynamic tag icon next to the **Button URL** setting.
3. Select **ACPT dynamic data** → choose your `URL` field.
4. Set **Display as** → `URL only`.

The button will now link to the URL stored in the field.

***

#### Display an image field as a module background

1. Select a **Section** or **Row**.
2. Go to **Background** → **Image** and click the dynamic tag icon.
3. Select **ACPT dynamic data** → choose your `Image` field.
4. Set **Display as** → `URL only`.

***

#### Display a date field with a custom format

1. Add a **Text** module.
2. Click the dynamic tag icon next to the **Body** setting.
3. Select **ACPT dynamic data** → choose your `Date` field.
4. Set **Date format** to `F j, Y` (e.g. *March 9, 2026*).

***

#### Display a multi-value field as a list

1. Add a **Text** module.
2. Click the dynamic tag icon next to the **Body** setting.
3. Select **ACPT dynamic data** → choose a `Checkbox` or `Select Multi` field.
4. Set **List style** → `Unordered list`.

***

### Option Pages

ACPT fields assigned to **Option Pages** are also available in the dynamic tag picker. They appear in the field dropdown alongside post-type fields and will resolve to the globally stored option value regardless of the current post context.

***

### Repeater and Flexible Content fields

Repeater and Flexible Content fields are **not available** as dynamic tags, as they contain multiple rows of data that cannot be expressed as a single scalar value.

To display Repeater or Flexible Content fields inside Divi 5, use the **ACPT Repeater Loop** block in the Gutenberg editor, or build your layout using the ACPT template system.

***

### Troubleshooting

**The field dropdown is empty** Make sure your Meta Box is assigned to the post type you are currently editing, and that the post type has at least one field that is not a Repeater or Flexible Content type.

**The value shows correctly in the builder but not on the frontend** Check that the post has a saved value for the field. Dynamic tags resolve live data — if the field is empty, Divi will fall back to any static default you set in the module.

**The module shows "Legacy" in Divi 5** This refers to the older ACPT Divi 4 widget, not the Dynamic Tags integration. Dynamic Tags are fully native to Divi 5. See the note at the top of this page
