Twig
Last updated
Last updated
The Advanced Views Framework templates by default utilize the Twig engine, a modern and widely adopted template engine.
You can read why we use it, and compare it with the Blade alternative here.
If you're new to Twig, we provide an overview of its key features below.
You can launch the snippets and play with them in your browser using the Twigfiddle service.
Using double curly brackets, you can easily inject variables into your markup. For instance:
When working with arrays, follow this syntax:
You can also define variables directly within a template:
With Twig, you don't need to worry about escaping variables anymore because Twig automatically escapes all variables passed into the template by default.
However, in some specific cases, you may still need to pass HTML without escaping. For example, when displaying a WYSIWYG field value, you should use the |raw
filter like this: {{ my_var|raw }}
. Without the |raw
filter, HTML tags will be converted into HTML entities and displayed on the page as plain text.
Twig allows you to perform any mathematical operations within brackets. For example:
This will output 15.
You can create different markup based on various conditions. For instance:
The 'else' part is optional.
You can also use odd and even for comparison, such as:
Twig provides a straightforward way to iterate through arrays:
Additionally, you can access the current index using the loop.index
magic variable, which starts at "1". This can be useful for detecting the first element or distinguishing between odd and even indices.
Twig offers a wide range of filters that you can apply using the pipe symbol.
Here are some examples:
Click on a specific filter name on this page in the Twig Docs to access more detailed information.
Note: We have created a custom build of Twig (to securely integrate it with WordPress), so some filters from the official list may be missing. You can safely use the filters listed above or experiment with any filter from the official list and let us know if it doesn't function as expected.
Functions, unlike filters, serve different purposes and have distinct syntax.
The key distinction between filters and functions lies in how they handle variables. Filters modify the variable they are applied to, as in "var|round," while functions operate on arguments independently.
When working with date filters and functions, it's important to consider the variable type. Strings containing dates and Date objects are distinct entities, and you should keep the following in mind:
Date objects cannot be displayed directly; you need to convert them into strings for this purpose.
When using conditional statements like {% if %}
, you cannot directly compare date strings; you should first convert them into Date objects for comparison.
The "date" filter returns a string, whereas the "date_modify" filter and "date" function return Date objects. Refer to the information below for more details.
Converts a Date object into a string based on the specified format. If you provide a string, the filter will automatically parse the date using strtotime and then convert it into a string in the requested format.
Modifies a Date object according to the argument provided and returns the modified Date object. If you pass a string, the filter will automatically parse the date using strtotime.
Keep in mind that this function returns a Date object, not a string. If you want to display the modified date, you should use the "date" filter to print the Date object in a specific format.
Converts a string into a Date object, which is useful for comparison purposes.
Keep in mind that this function also returns a Date object, not a string. If you want to display the Date object, you should use the "date" filter to print it in a specific format.
Available date formats
you can use any formats with the |date filter
you can use most of the available date formats for the date() function. For example, "m-d-Y" (10-20-2011), "M d, Y" (October 20, 2011), or "d.m.Y" (20.10.2011).
Tip: When you use the date parsing functions and filters, we recommend using the '.timestamp
' property of the date field. This will save you from dealing with date parsing issues.
For example, both US (e.g., mm/dd/yyyy) and European (e.g., dd/mm/yyyy) formats use the same delimiter, so the European format will be ignored in favor of the US format. This behavior is in line with the default behavior of the strtotime function.
In this way using 'datepicker.timestamp|date("d-m-Y")
' is the safe way which avoids it.
We extended Twig to include additional WordPress-related functions, in addition to its built-in functions. You can find these extended functions listed below.
You'll use the interactivity functions in Views when employing the WP Interactivity API, while paginate_links
is used inside Cards when the 'Source: Page content' option is chosen.
Note: These functions are only available in Advanced Views Framework: Pro Edition.
In the Pro version of the plugin, you can add your own functions. Check this hooks guide to learn details.
In the Pro version of the plugin, you can add your own filters. Check this hooks guide to learn details.
If you're wondering, AVF uses version 3.7.1 of the Twig engine.