- Documentation >
- Templating >
- Twig function reference >
- Field Twig functions
Field Twig functions
Field Twig functions render specific fields of a content item and provide information about them.
ibexa_field() returns the Field object, and ibexa_field_value() returns the Field's raw value.
ibexa_render_field() is the Twig function intended for rendering the field on the front page.
You can get additional information about a field by using the following Twig functions:
Field rendering
ibexa_render_field()
ibexa_render_field() renders the selected field of a content item.
The field is rendered with the default template, but you can optionally pass a different template as parameter as well.
| Argument | Type | Description | 
| content | ContentorContentAwareInterface | Content item the field belongs to. | 
| fieldDefinitionIdentifier | string | Field identifier. | 
| params | hash | (optional) Hash of parameters passed to the template block. | 
|  | {{ ibexa_render_field(content, 'title') }}
{{ ibexa_render_field(content, 'image', {
    'template': '@ibexadesign/fields/image.html.twig',
    'attr': {class: 'thumbnail-image'},
    'parameters': {
        'alias': 'small'
    }
}) }}
 | 
|  | {{ ibexa_render_field(product, 'name') }}
{{ ibexa_render_field(product, 'image', {
    'template': '@ibexadesign/fields/image.html.twig',
    'attr': {class: 'thumbnail-image'},
    'parameters': {
        'alias': 'small'
    }
}) }}
 | 
Parameters
You can pass the following parameters to ibexa_render_field():
- lang- language to render the field in (overrides the current language), must be a valid locale in xxx-YY format
- template- field template to use
- attr- hash of HTML attributes to add to the tag
- parameters - arbitrary parameters to pass to the template block.
Some field types, like the MapLocation field type, expect specific parameters.
Examples
|  | {{ ibexa_render_field(content, 'title', {
    'attr': {
        class: 'article-title'
    }
}) }}
 | 
Field values
ibexa_field_value()
ibexa_field_value() returns the field value object.
The function returns the value of the field only.
To render the field with default or custom templates, use ibexa_render_field() instead.
If the content item doesn't have a translation in the prioritized or passed language, the function returns the value in the main language.
| Argument | Type | Description | 
| content | ContentorContentAwareInterface | Content item the field belongs to. | 
| fieldDefIdentifier | string | Identifier of the field. | 
| forcedLanguage | string | (optional) Language to use (for example, "fre-FR"). | 
|  | {{ ibexa_field_value(content, 'image') }}
 | 
|  | {{ ibexa_field_value(product, 'image') }}
 | 
ibexa_field()
ibexa_field() returns the field object.
The field gives you access to the field value, the field's definition identifier, and field type identifier.
If the content item doesn't have a translation in the prioritized or passed language, the function returns the field object in the main language.
| Argument | Type | Description | 
| content | ContentorContentAwareInterface | Content item the field belongs to. | 
| fieldDefIdentifier | string | Identifier of the field. | 
| forcedLanguage | string | {optional) Language to use (for example, "fre-FR"). | 
You can access the field's value by using (ibexa_field(content, 'my_field').value),
but it's recommended to use the dedicated ibexa_field_value() function for this.
You can use ibexa_field() to access the field type identifier:
|  | {{ ibexa_field(content, 'my_field').fieldTypeIdentifier }}
 | 
|  | {{ ibexa_field(product, 'my_field').fieldTypeIdentifier }}
 | 
ibexa_field_name()
ibexa_field_name() returns the name of a content item's field.
The function uses prioritized languages from SiteAccess settings unless you pass another language as forcedLanguage.
If the content item doesn't have a translation in the prioritized or passed language, the function returns the name in the main language.
| Argument | Type | Description | 
| content | Content,ContentInfo, orContentAwareInterface | Content item the field belongs to. | 
| fieldDefIdentifier | string | Identifier of the field. | 
| forcedLanguage | string | (optional) Language to use (for example, fre-FR). | 
|  | {{ ibexa_field_name(content, 'title') }}
{{ ibexa_field_name(content, 'title', 'ger-DE') }}
 | 
|  | {{ ibexa_field_name(product, 'name') }}
{{ ibexa_field_name(product, 'name', 'pl-PL') }}
 | 
ibexa_field_description()
ibexa_field_description() returns the description of a content item's field.
The function uses prioritized languages from SiteAccess settings unless you pass another language as forcedLanguage.
If the content item doesn't have a translation in the prioritized or passed language, the function returns the description in the main language.
| Argument | Type | Description | 
| content | Content,ContentInfo, orContentAwareInterface | Content item the field belongs to. | 
| fieldDefIdentifier | string | Identifier of the field. | 
| forcedLanguage | string | (optional) Language to use (for example, fre-FR). | 
|  | {{ ibexa_field_description(content, 'title') }}
{{ ibexa_field_description(content, 'title', 'ger-DE') }}
 | 
|  | {{ ibexa_field_description(product, 'name') }}
{{ ibexa_field_description(product, 'name', 'fr-FR') }}
 | 
ibexa_field_is_empty()
ibexa_field_is_empty() returns Boolean information whether a given field of a content item is empty.
| Argument | Type | Description | 
| content | ContentorContentAwareInterface | Content item the field belongs to. | 
| fieldDefIdentifier | string | Identifier of the field. | 
| forcedLanguage | string | (optional) Language to use (for example, fre-FR). | 
|  | {{ ibexa_field_is_empty(content, 'title') }}
 | 
|  | {{ ibexa_field_is_empty(product, 'name') }}
 | 
Examples
For example, use ibexa_field_is_empty() to check whether a field is empty or filled before rendering it:
|  | {% if not ibexa_field_is_empty(content, 'image') %}
    {{ ibexa_render_field(content, 'image') }}
{% endif %}
 | 
|  | {% if not ibexa_field_is_empty(product, 'image') %}
    {{ ibexa_render_field(product, 'image') }}
{% endif %}
 | 
ibexa_field_group_name()
ibexa_field_group_name() returns a human-readable name of a field group.
| Argument | Type | Description | 
| fieldGroupIdentifier | string | Field group identifier. | 
|  | {{ ibexa_field_group_name('content') }}
 | 
ibexa_has_field()
ibexa_has_field() returns Boolean information whether a field is present in the content item.
| Argument | Type | Description | 
| content | ContentorContentAwareInterface | Content item the field may belong to. | 
| fieldDefIdentifier | string | Identifier of the field. | 
|  | {% if ibexa_has_field(content, 'existing') %}
    {{ ibexa_render_field(content, 'existing') }}
{% endif %}
 | 
|  | {% if ibexa_has_field(product, 'existing') %}
    {{ ibexa_render_field(product, 'existing') }}
{% endif %}
 |