> For the complete documentation index, see [llms.txt](https://wplake.gitbook.io/advanced-views/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wplake.gitbook.io/advanced-views/integrations/themes/divi/displaying-custom-fields.md).

# Displaying custom fields in the Divi theme

Using [*Layouts*](/advanced-views/getting-started/first-layout.md) from Advanced Views, you can display any custom fields in [Divi](https://www.elegantthemes.com/gallery/divi/). Smart templates [give you complete control](/advanced-views/getting-started/key-aspects.md) over the markup and display logic without extra hassle.&#x20;

{% hint style="success" %}
Advanced Views natively supports fields from multiple providers:

1. [WordPress fields](/advanced-views/fields/wordpress-fields.md) (like page title, excerpt, user name, etc)
2. [Advanced Custom Fields](/advanced-views/fields/meta-plugins/advanced-custom-fields.md) (any field type)
3. [MetaBox fields](/advanced-views/fields/meta-plugins/meta-box-fields.md) (any field type)
4. [Pods fields](/advanced-views/fields/meta-plugins/pods-fields.md) (any field type)
5. [WooCommerce Product fields](/advanced-views/fields/woo-product-fields.md) (like price, SKU, height, etc)

To display [other fields](/advanced-views/fields/other-fields.md) made by your theme or plugins, just [customize the default Layout template](/advanced-views/layouts/code-fields/custom-template.md).
{% endhint %}

## 1. How to display custom fields on a single page

{% hint style="info" %}
The steps below apply to the Divi builder. If you edit pages using the Gutenberg editor, refer to our [Gutenberg editor guide](/advanced-views/integrations/editors/gutenberg/displaying-custom-fields.md) instead.
{% endhint %}

In Advanced Views, *Layouts* are embedded using native WordPress shortcodes, which you can paste anywhere in the Divi Builder:&#x20;

<figure><img src="https://2293383029-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN2nAC4pTDjEmDu8ZkLB2%2Fuploads%2Filn61N0Fx2rcubekmXVK%2Fdivi-single-page.png?alt=media&amp;token=095b9e0f-1bc0-4887-8813-77d2dd72bc24" alt=""><figcaption></figcaption></figure>

1. [Create a *Layout*](/advanced-views/getting-started/first-layout.md)
2. Add target fields in the *Fields* tab and save the *Layout*
3. Copy a [Layout embedding shortcode](/advanced-views/layouts/embedding-shortcode.md)
4. Edit the target page with the Divi Builder
5. **Within Divi**: Click on the plus and add a [Code module](https://www.elegantthemes.com/documentation/divi/code/)
6. **Within the Code module:** Paste the Layout embedding shortcode
7. Save the page and visit it to see the result

To change the default field appearance, open the created *Layout* and [customize the *Layout* template](/advanced-views/layouts/code-fields/custom-template.md).&#x20;

{% hint style="success" %}
By default, *Layout* displays chosen fields of the current page. You can display fields from other sources by tuning the [Layout shortcode arguments](/advanced-views/layouts/embedding-shortcode.md).&#x20;
{% endhint %}

## 2. How to display custom fields in a Loop

[Divi Loop Query](https://www.elegantthemes.com/blog/divi-resources/all-divi-5-loop-builder-query-options-explained) is a feature that allows you to query and display posts, and it can be enabled on any row or column.

With Advanced Views, you can not only display custom fields inside the loop but also add conditions, merge fields, and modify field value output.

<figure><img src="https://2293383029-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN2nAC4pTDjEmDu8ZkLB2%2Fuploads%2FdivxWdX0gxIDLcTTKGPL%2Fdivi-loop.png?alt=media&amp;token=534a58b3-0b45-45a1-ae45-bf994c11d21c" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2293383029-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN2nAC4pTDjEmDu8ZkLB2%2Fuploads%2FKibtjpUOz7aXZRluHOnZ%2Fdivi-loop-code.png?alt=media&amp;token=6ddc0b07-58f1-48db-a595-94ca302d8941" alt=""><figcaption></figcaption></figure>

1. [Create a *Layout*](/advanced-views/getting-started/first-layout.md)
2. Add target fields in the *Fields* tab and save the *Layout*
3. Copy a [Layout embedding shortcode](/advanced-views/layouts/embedding-shortcode.md)
4. Open the target page with the [Loop Query](https://www.elegantthemes.com/blog/divi-resources/all-divi-5-loop-builder-query-options-explained) (or enable it for any container element)
5. **Within the Container**: Click on the plus and add a [Code module](https://www.elegantthemes.com/documentation/divi/code/)
6. **Within the Code module:** Paste the Layout embedding shortcode
7. Save the page and visit it to see the result

The **Loop Query** is rendered for each found post, while the ***Layout*** displays the custom fields for that specific post.

{% hint style="success" %}
The **Loop Query** is a good choice for simple queries. If you need advanced filtering, sorting, or other query options, use the [*Post Selection*](/advanced-views/getting-started/first-post-selection.md) feature of Advanced Views.
{% endhint %}

## 3. How to display custom fields in a Template

### 3.1) Custom Post Type template

If multiple pages or Custom Post Type (CPT) items share the same set of custom fields, you don't need to embed a *Layout* in each item individually. Instead, embed the *Layout* in the appropriate [Divi template](https://www.elegantthemes.com/documentation/divi/the-divi-theme-builder/), so it is rendered automatically for every corresponding item:

<figure><img src="https://2293383029-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN2nAC4pTDjEmDu8ZkLB2%2Fuploads%2F0VzjtgMXNFhrJsnyD40Z%2Fdivi-theme-builder.png?alt=media&amp;token=4f71e39f-c921-4e8f-a4fe-d2d35d935449" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2293383029-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN2nAC4pTDjEmDu8ZkLB2%2Fuploads%2FzKgKWPFkTY8kCDHEL8ef%2Fdivi-layout.png?alt=media&amp;token=e3d59e63-9746-40f9-ab5d-2cc5b10e85a8" alt=""><figcaption></figcaption></figure>

1. [Create a *Layout*](/advanced-views/getting-started/first-layout.md)
2. Add target fields in the *Fields* tab and save the *Layout*
3. Copy a [Layout embedding shortcode](/advanced-views/layouts/embedding-shortcode.md)
4. Open the [Divi Theme Builder](https://www.elegantthemes.com/documentation/divi/the-divi-theme-builder/) (Dashboard → Divi → Theme Builder)
5. Choose any Template (or add a new one for CPT items)
6. **Within Divi**: Click the plus icon and add a [Code module](https://www.elegantthemes.com/documentation/divi/code/)
7. **Within the Code module:** Paste the Layout embedding shortcode
8. Save the template and visit any CPT item to see the result

When the template is rendered, the embedded *Layout* automatically displays the custom fields for the current page, post, or other content item using that template.

{% hint style="success" %}
*Layout* IDs are unique string identifiers, not WordPress post IDs. Unlike post IDs, they remain unchanged when *Layouts* are exported and imported, ensuring consistent references across different environments, such as staging and production.
{% endhint %}

### 3.2) Header/Footer template

{% hint style="info" %}
A common use case is [displaying custom fields from an Options page](/advanced-views/field-sources/options-page.md) in the site footer.&#x20;
{% endhint %}

In Divi, Header and Footer templates are edited in the same way as any other templates. The only difference in this integration is the shortcode modification: you need to add the `object-id` argument to load fields from the Options page:

1. [Create a *Layout*](/advanced-views/getting-started/first-layout.md)
2. Add target fields in the *Fields* tab and save the *Layout*
3. Copy a [Layout embedding shortcode](/advanced-views/layouts/embedding-shortcode.md)
4. Modify [*Layout* shortcode](/advanced-views/layouts/embedding-shortcode.md): add `object-id="options"` argument (to [display fields from the Options page](/advanced-views/field-sources/options-page.md))
5. Open the [Divi Theme Builder](https://www.elegantthemes.com/documentation/divi/the-divi-theme-builder/) (Dashboard → Divi → Theme Builder)
6. Choose Header/Footer Template
7. **Within Divi**: Click on the plus and add a [Code module](https://www.elegantthemes.com/documentation/divi/code/)
8. **Within the Code module:** Paste the Layout embedding shortcode
9. Save the template and visit any page to see the result

{% hint style="info" %}
Unlike page-specific custom fields, custom fields from an Options page are site-wide. As a result, the same values are displayed on every site page.
{% endhint %}
