Twig filters
General Filters #
Twig offers a variety of filters to transform text and other information into the desired output. In addition, Timber has added some valuable custom filters for your WordPress theme:
array #
Makes sure a variable is an array to safely loop over it without running into an error.
PHP
$things = 'thing';
// Or
$things = ['thing', 'thang'];Twig
{% for thing in things|array %}
{{ thing }}
{% endfor %}excerpt #
Trims text to a certain number of words.
Twig
<p class="intro">{{ post.post_content|excerpt(30) }}...</p>Output
<p class="intro">Steve-O was born in London, England. His mother,
Donna Gay (née Wauthier), was Canadian, and his father, Richard
Glover, was American. His paternal grandfather was English
and his maternal step-grandfather ...</p>excerpt_chars #
Trims text to a certain number of characters.
Twig
<p class="intro">{{ post.post_content|excerpt_chars(124) }}...</p>Output
<p class="intro">Steve-O was born in London, England. His mother,
Donna Gay (née Wauthier), was Canadian, and his father, Richard
Glover, was ...</p>function #
Runs a function where you need. Really valuable for integrating plugins or existing themes.
The |function filter is deprecated. Use function() instead. You can read more about this in the Functions Guide.
Twig
{# 🚫 Don’t do this #}
<div class="entry-meta">{{ 'twenty_ten_entry_meta'|function }}</div>
{# ✅ Do this instead #}
<div class="entry-meta">{{ function('twenty_ten_entry_meta') }}</div>Output
<div class="entry-meta">Posted on September 6, 2013</div>relative #
Converts an absolute URL into a relative one, for example:
My custom link is <a href="{{ 'https://example.org/2015/08/my-blog-post'|relative }}">here!</a>My custom link is <a href="/2015/08/my-blog-post">here!</a>pretags #
Converts tags like <span> into <span>, but only inside of <pre> tags. Great for code samples when you need to preserve other formatting in the non-code sample content.
sanitize #
Converts Titles like these into titles-like-these. This is great for converting titles to use them in id attributes.
Twig
<h1 id="{{ post.title|sanitize }}">{{ post.title }}</h1>Output
<h1 id="my-awesome-post">My awesome post</h1>shortcodes #
Runs text through WordPress's shortcodes filter. In this example imagine that you've added a shortcode to a custom field like [gallery id="123" size="medium"]
Twig
<section class="gallery">
{{ post.custom_shortcode_field|shortcodes }}
</section>Output
<section class="gallery">
Here is my gallery <div class="gallery" id="gallery-123"><img src="...." />...</div>
</section>stripshortcodes #
Removes all shortcode tags from the given content using strip_shortcodes().
Twig
{{ post.content|stripshortcodes }}time_ago #
Displays a date in timeago format:
Twig
<p class="entry-meta">Posted: <time>{{ post.post_date_gmt|time_ago }}</time></p>Output
<p class="entry-meta">Posted: <time>3 days ago</time></p>truncate #
Twig
<p class="entry-meta">{{ post.character.origin_story|truncate(8) }} ...</p>Output
<p class="entry-meta">Bruce Wayne’s parents were shot outside the opera ...</p>wpautop #
Adds paragraph breaks to new lines.
Twig
<div class="body">
{{ post.meta('custom_text_area')|wpautop }}
</div>Output
<div class="body">
<p>Sinatra said, "What do you do?"</p>
<p>"I'm a plumber," Ellison said.</p>
<p>"No, no, he's not," another young man quickly yelled from across the table. "He wrote The Oscar."</p>
<p>"Oh, yeah," Sinatra said, "well I've seen it, and it's a piece of crap."</p>
</div>wp_list_filter #
Uses wp_list_filter().
list #
Converts an array of strings into a comma-separated list.
PHP
$context['contributors'] = [
'Blake Allen',
'Rachel White',
'Maddy May',
];Twig
Contributions made by {{ contributors|list(',', '&') }}Output
Contributions made by Blake Allen, Rachel White & Maddy May