> 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/page-builders/elementor/displaying-custom-fields.md).

# Displaying custom fields in Elementor

Using [*Layouts*](/advanced-views/getting-started/first-layout.md) from Advanced Views, you can display any custom fields in [Elementor](https://elementor.com/). 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 Elementor editor. 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 in any place in the Elementor editor:&#x20;

<figure><img src="https://2293383029-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN2nAC4pTDjEmDu8ZkLB2%2Fuploads%2Fnpad0YsLnUVr4tsiZRnD%2Flayout-in-elementor-page.png?alt=media&amp;token=2f2cc0e5-bef4-423d-b9f8-4bdd2c57081c" 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 Elementor
5. **Within Elementor**: Click on the plus and add a [Shortcode widget](https://elementor.com/help/shortcode-widget/)
6. **Within the Shortcode widget**: 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 within a Loop element

[The Loop element](https://elementor.com/help/building-query-loop-grid/) in Elementor allows you to query and display posts. 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%2F7dC14ku4cgDG003RZJwf%2Felementor-loop.png?alt=media&amp;token=a138075c-d04a-4f09-9303-f0a712d5f4f7" 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 element](https://elementor.com/help/building-query-loop-grid/)
5. Double-click on the target Loop element (or choose Loop Item in the structure, then right-click → edit)&#x20;
6. **Within the Loop item**: Click on the plus and add a [Shortcode widget](https://elementor.com/help/shortcode-widget/)
7. **Within the Shortcode widget**: Paste the Layout embedding shortcode
8. Save the page and visit it to see the result

The elements inside the **Loop** are rendered for each found post, while the ***Layout*** displays the custom fields for that specific post.

{% hint style="success" %}
The **Loop** 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 [Elementor template](https://elementor.com/help/single-page-site-part/), 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%2F4E0CAGiVuifQMJe87RTF%2Felementor-theme-builder.png?alt=media&amp;token=dae2a4ba-513d-4656-b067-9e9a4f6ff155" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2293383029-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN2nAC4pTDjEmDu8ZkLB2%2Fuploads%2FLqwXr8PD5Kg43S665BKu%2Flayout-in-elementor-cpt-template.png?alt=media&amp;token=0c079d80-0f36-4b24-9591-4cc88fca878f" 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 [Elementor Theme Builder](https://elementor.com/help/the-elementor-theme-builder/) (Dashboard → Elementor → Theme Builder)
5. Choose any Template (or [add a new one](https://elementor.com/help/single-page-site-part/) for CPT items)
6. **Within Elementor**: Click on the plus and add a [Shortcode widget](https://elementor.com/help/shortcode-widget/)
7. **Within the Shortcode widget:** Paste the Layout embedding shortcode
8. Save the template and visit any CPT item to see the result

{% hint style="warning" %}
If you created a new template for CPT, make sure you have configured the **Display Conditions** so that the template is applied to all your CPT items.
{% endhint %}

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 Elementor, 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 [Elementor Theme Builder](https://elementor.com/help/the-elementor-theme-builder/) (Dashboard → Elementor → Theme Builder)
6. Choose the Header/Footer Template&#x20;
7. **Within Elementor**: Click on the plus and add a [Shortcode widget](https://elementor.com/help/shortcode-widget/)
8. **Within the Shortcode widget**: 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 %}
