The id template attribute is a unique identifier for the content field. It is a required attribute. Use letters, numbers and underscores only for an id.

<perch:content id="main_heading" type="text" label="Main heading">

Re-using an ID in the template

The id identifies the content uniquely within the template. Therefore if you want to use the same content in multiple places in your template, you can re-use the id. The user adding content would only enter the content once despite in the output the content being displayed in more than one place.

An example where you might want to do this is with an email address. You want the user to enter the email address once in the edit form, but display it on the page and also as the mailto of a link. The template for this would be as follows.

You can email us at:
<a href="mailto:<perch:content id="email" type="text" label="Email address">">
    <perch:content id="email" type="text">

When an ID is reused, the options for editing are taken from the first instance of the tag in the template. Make sure any attributes that affect the editing experience are added to the first instance of the tag.

Special Values

Normally, when creating a Perch template tag, you choose the string to use for the ID, however there are a few special values you can use instead. Using one of these special values will cause Perch to output content for you as described below.

When using a special ID value also set that field to a type of hidden as the values of these fields is generated by Perch you don’t need them to display in the edit form.

The below Perch Template Tag, if used in a multiple-item region will output an index – 1 for the first item, 2 for the second and so on.

<perch:content id="perch_item_index" type="hidden">

Special ID Values

Value Description
perch_item_index The number of the item within a multiple-item region. Outputs 1 for the first item, 2 for the second and so on.
_id The unique ID of that item of content within the region. This does not change throughout the life of the content.
perch_item_odd Outputs odd for odd-numbered items with a multiple-item region, and nothing for even items.
perch_item_count The total number of items in the region
perch_item_first Has a value for the first item only, so can be used in a perch:if, for example.
perch_item_last Has a value for the last item only, so can be used in a perch:if, for example.
_page The page path this content has been pulled from.
perch_page_path The path to the current page as Perch sees it (only useful in runtime-processed templates like forms or with perch_content_custom)
perch_item_zero_index The same as perch_item_index, but starts counting from zero.
perch_item_rev_index A count of the remaining items left, including the current item.
perch_item_rev_zero_index A count of the remaining items left.