### Example Directory Structure
Source: https://timber.github.io/docs/v2/installation/installation
Illustrates the expected directory structure after installing the Timber Starter Theme within your WordPress themes folder.
```text
/wp-content/themes/twentyeighteen
/twentynineteen
/timber-starter-theme
```
--------------------------------
### setup()
Source: https://timber.github.io/docs/v2/reference/timber-post
Sets up a post.
```APIDOC
## setup()
### Description
Sets up a post.
### Returns
`\Timber\Post` - The post instance.
```
--------------------------------
### Attachment Link Example in HTML
Source: https://timber.github.io/docs/v2/reference/timber-image
An example demonstrating how an attachment link and image source are rendered in HTML.
```html
```
--------------------------------
### HTML Output Example
Source: https://timber.github.io/docs/v2/reference/timber-site
This is an example of how site information might be rendered in HTML, showing the names of the current and another site.
```html
My site is called Jared's blog, another site on my network is Upstatement.com
```
--------------------------------
### Install Composer Dependencies
Source: https://timber.github.io/docs/v2/contributing
Run this command after forking the Timber repository to install all necessary Composer dependencies.
```bash
composer install
```
--------------------------------
### Setting Post Context with setup() for Plugin Compatibility
Source: https://timber.github.io/docs/v2/upgrade-guides/2.0
If you still manually set the 'post' context, use `->setup()` to improve compatibility with third-party plugins.
```php
$context['post']->setup();
```
--------------------------------
### Constructing Timber
Site Objects
Source: https://timber.github.io/docs/v2/reference/timber-site
Demonstrates how to instantiate a Timber
Site object, both in multisite setups by providing an ID or name, and in non-multisite setups.
```php
//multisite setup
$site = new Timber\Site(1);
$site_two = new Timber\Site("My Cool Site");
//non-multisite
$site = new Timber\Site();
```
--------------------------------
### Start and Stop Timer in PHP
Source: https://timber.github.io/docs/v2/reference/timber-helper
Use start_timer() to get a timestamp and stop_timer() to calculate the elapsed time. Useful for performance profiling.
```php
$start = Timber\Helper::start_timer();
// do some stuff that takes awhile
echo Timber\Helper::stop_timer( $start );
```
--------------------------------
### Install WordPress Tests
Source: https://timber.github.io/docs/v2/guides/testing
SSH into the Vagrant instance, navigate to the Timber directory, and use the provided script to install the WordPress tests.
```bash
$ cd /srv/www/timber
$ bin/install-wp-tests.sh wordpress_tests root root
```
--------------------------------
### Example HTML Structure
Source: https://timber.github.io/docs/v2/reference/timber-externalimage
An example of how an article with an external image might be structured in HTML.
```html
Now you've done it!
Whatever whatever
```
--------------------------------
### Install Development Version (Specific Branch/Tag)
Source: https://timber.github.io/docs/v2/installation/manage-timber-with-composer
Commands to install specific development versions, such as a beta release or the latest work on a branch.
```bash
# Install the beta version of 2.x.
composer require timber/timber:2.x-beta1
# Install the latest work on the 2.x branch.
composer require timber/timber:dev-2.x
```
--------------------------------
### Install Timber with Composer
Source: https://timber.github.io/docs/v2/installation/intro-to-composer
Use this command in your project's root folder to install the Timber package using Composer.
```bash
composer require timber/timber
```
--------------------------------
### Example User and Post Data (HTML)
Source: https://timber.github.io/docs/v2/reference/timber-user
This HTML snippet shows example output for user and post information, illustrating what might be rendered by the Twig template.
```html
Your name is Jesse Eisenberg
This article is called "Consider the Lobster"
and it’s by David Foster Wallace
```
--------------------------------
### Timber\Helper::start_timer()
Source: https://timber.github.io/docs/v2/reference/timber-helper
Starts a timer for performance measurement.
```APIDOC
## Timber\Helper::start_timer()
### Description
For measuring time, this will start a timer.
### Method
`start_timer()`
```
--------------------------------
### HTML Example for Image Width
Source: https://timber.github.io/docs/v2/reference/timber-imagedimensions
An example of an HTML img tag with the width attribute pre-filled, demonstrating how the width property might be used.
```html
```
--------------------------------
### Example Custom Integration Class
Source: https://timber.github.io/docs/v2/guides/custom-integrations
A simplified example of an integration class for Advanced Custom Fields. It checks for ACF's existence and hooks into Timber's post meta logic.
```php
namespace MyProject;
use ACF;
/**
* Class used to handle integration with Advanced Custom Fields
*/
class MyAcfIntegration implements IntegrationInterface
{
public function should_init(): bool
{
return class_exists(ACF::class);
}
public function init(): void
{
// Hook into Timber’s post meta logic.
add_filter('timber/post/pre_meta', [$this, 'post_get_meta_field'], 10, 5);
}
public static function post_get_meta_field($value, $post_id, $field_name, $post, $args)
{
$args = wp_parse_args($args, [
// Apply formatting logic (defined when configuring the field).
'format_value' => true,
]);
// NOTE: get_field() is defined by ACF itself. We’re simply delegating.
return get_field($field_name, $post_id, $args['format_value']);
}
}
```
--------------------------------
### Install Twig Cache Extra Package
Source: https://timber.github.io/docs/v2/guides/performance
Install the necessary package for using the cache tag in Twig.
```bash
composer require twig/cache-extra
```
--------------------------------
### start_timer()
Source: https://timber.github.io/docs/v2/reference/timber-helper
Starts a timer for measuring execution time.
```APIDOC
## start_timer()
### Description
For measuring time, this will start a timer.
### Method
`start_timer()`
### Returns
- **float** - The starting timestamp.
```
--------------------------------
### Install Development Version (Master Branch)
Source: https://timber.github.io/docs/v2/installation/manage-timber-with-composer
Command to install the latest development version from the master branch of the Timber package.
```bash
composer require timber/timber:dev-master
```
--------------------------------
### HTML Example for Image Height
Source: https://timber.github.io/docs/v2/reference/timber-imagedimensions
An example of an HTML img tag with the height attribute pre-filled, demonstrating how the height property might be used.
```html
```
--------------------------------
### Install Specific Timber Version
Source: https://timber.github.io/docs/v2/installation/manage-timber-with-composer
Use the `composer require` command to install a specific version of the Timber package.
```bash
composer require timber/timber:2.0.1
```
--------------------------------
### preview()
Source: https://timber.github.io/docs/v2/reference/timber-post
Gets an excerpt of your post.
```APIDOC
## preview()
### Description
Gets an excerpt of your post.
### Returns
`\Timber\PostExcerpt`
```
--------------------------------
### Example HTML Structure for a Post
Source: https://timber.github.io/docs/v2/reference/timber-post
This is an example of the HTML structure that might be rendered for a single post, including a headline and body content. This serves as a visual representation of the Twig output.
```html
The Empire Strikes Back
It is a dark time for the Rebellion. Although the Death Star has been
destroyed, Imperial troops have driven the Rebel forces from their
hidden base and pursued them across the galaxy.
```
--------------------------------
### Getting Terms in PHP
Source: https://timber.github.io/docs/v2/reference/timber-term
Examples of how to retrieve term objects using Timber::get_term() in various scenarios.
```APIDOC
## Timber::get_term()
### Description
Retrieves a term object based on ID, slug, or the current term context.
### Method
`Timber::get_term( int|string $term = null, string $taxonomy = null ): 9TimberTerm|9WP_Term|9null`
### Parameters
#### Path Parameters
- **$term** (int|string) - Optional - The ID or slug of the term to retrieve. If null, it attempts to get the term from the current query context.
- **$taxonomy** (string) - Optional - The taxonomy of the term to retrieve. If not provided, it will attempt to infer from the context or default to 'category'.
### Request Example
```php
// Get a term by its ID
$context['term'] = Timber::get_term(6);
// Get a term when on a term archive page
$context['term_page'] = Timber::get_term();
// Get a term with a slug
$context['team'] = Timber::get_term('patriots');
Timber::render('index.twig', $context);
```
### Response
#### Success Response
- **Timber\Term** - A TimberTerm object if found.
- **WP_Term** - A WordPress term object if TimberTerm is not available or if explicitly returned.
- **null** - If the term is not found.
#### Response Example
```json
{
"name": "New England Patriots",
"taxonomy": "teams",
"description": "Winner of 6 Super Bowls"
}
```
```
--------------------------------
### setup()
Source: https://timber.github.io/docs/v2/reference/timber-attachment
Sets up the post object and associated global variables for compatibility with WordPress.
```APIDOC
## setup()
### Description
Sets up a post. Sets up the `$post` global, and other global variables as well as variables in the `$wp_query` global that makes Timber more compatible with WordPress. This function will be called automatically when you loop over Timber posts as well as in `Timber::context()`.
### Returns
`\Timber\Post` - The post instance.
_This method is inherited from `Timber\Post`._
```
--------------------------------
### setup()
Source: https://timber.github.io/docs/v2/reference/timber-attachment
Sets up a post object for use within Timber. This method prepares the post instance for further operations.
```APIDOC
## setup()
### Description
Sets up a post object for use within Timber.
### Returns
`\Timber\Post`: The post instance.
```
--------------------------------
### setup()
Source: https://timber.github.io/docs/v2/reference/timber-post
Sets up global variables and query variables for a post to enhance Timber's compatibility with WordPress. Automatically called during loops and Timber::context().
```APIDOC
## setup()
### Description
Sets up a post. Sets up the `$post` global, and other global variables as well as variables in the `$wp_query` global that makes Timber more compatible with WordPress.
This function will be called automatically when you loop over Timber posts as well as in `Timber::context()`.
**Since:** 2.0.0
### Returns
`\Timber\Post` The post instance.
```
--------------------------------
### Get External Image in PHP
Source: https://timber.github.io/docs/v2/reference/timber-externalimage
Use Timber::get_external_image() to fetch an external image. This function handles loading remote images into your WordPress installation.
```php
$context = Timber::context();
// Lets say you have an external image that you want to use in your theme
$context['cover_image'] = Timber::get_external_image($url);
Timber::render('single.twig', $context);
```
--------------------------------
### Get Post Terms in Twig
Source: https://timber.github.io/docs/v2/reference/timber-post
Retrieve and display terms for a specific taxonomy associated with a post in Twig. This example shows how to query categories, order them by name, and join them into a comma-separated string.
```twig
{% if jobs is not empty %}
{% for post in jobs %}
{{ post.title }}
{{ post.terms({
taxonomy: 'category',
orderby: 'name',
order: 'ASC'
})|join(', ') }}
{% endfor %}
{% endif %}
```
--------------------------------
### Get Post Terms in PHP
Source: https://timber.github.io/docs/v2/reference/timber-post
Demonstrates how to retrieve post terms using the `terms()` method in PHP. Examples include fetching terms for a single taxonomy, multiple taxonomies, and using custom query arguments with options.
```php
// Get all terms of a taxonomy.
$terms = $post->terms( 'category' );
// Get terms of multiple taxonomies.
$terms = $post->terms( array( 'books', 'movies' ) );
// Use custom arguments for taxonomy query and options.
$terms = $post->terms( [
'taxonomy' => 'custom_tax',
'orderby' => 'count'
], [
'merge' => false
] );
```
--------------------------------
### Force Realization of Post Collection with `realize()`
Source: https://timber.github.io/docs/v2/guides/posts
Use `Timber imber::get_posts()` within `Timber imber::transient()` and call `.realize()` to force the instantiation of all `Timber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber imber* Use `Timber::get_posts()` with a `query` argument. * Use `Timber::get_post()` with an argument. These two cases are always a performance hit. As long as you don’t change any query parameters, Timber will use the default query that is already set up and no additional database query will be run. If you care about performance and want to change the query that WordPress runs before deciding which template file it will use, you need to use the `pre_get_posts` action.
```php
$eager_posts = \Timber\Helper::transient('my_posts', function () {
$query = \Timber\Timber::get_posts([
'post_type' => 'some_post_type',
]);
// Run Post::setup() up front.
return $query->realize();
}, HOUR_IN_SECONDS);
foreach ($eager_posts as $post) {
// No additional overhead here.
}
// Later...
foreach (get_transient('my_posts') as $post) {
/**
* Same deal!
*
* No repeated overhead here because the realized Posts are already cached.
*/
}
```
--------------------------------
### Getting Raw Theme Headers
Source: https://timber.github.io/docs/v2/reference/timber-theme
Demonstrates how to get an unformatted theme header value, like the 'Version', using the `get` method in Twig.
```twig
{{ theme.get('Version') }}
```
--------------------------------
### get()
Source: https://timber.github.io/docs/v2/reference/timber-theme
Gets a raw, unformatted theme header. This method is a wrapper for WP_Theme::get().
```APIDOC
## get( string $header )
### Description
Gets a raw, unformatted theme header.
### Parameters
#### Path Parameters
- **$header** (string) - Required - Name of the theme header (e.g., Name, Description, Author, Version, ThemeURI, AuthorURI, Status, Tags).
### Response
#### Success Response (200)
- **string|false** - The raw theme header string on success, false on failure.
### Response Example
```twig
{{ theme.get('Version') }}
```
```
--------------------------------
### Create Timber Starter Theme Project
Source: https://timber.github.io/docs/v2/installation/installation
Use this command to create a new WordPress theme using the Timber Starter Theme, which includes Timber as a dependency. Run this from the wp-content/themes folder.
```bash
composer create-project upstatement/timber-starter-theme --no-dev
```
--------------------------------
### Install Specific Commit
Source: https://timber.github.io/docs/v2/installation/manage-timber-with-composer
Command to install a specific commit of the Timber package from the master branch.
```bash
composer require timber/timber:dev-master#2cfc7a2eb6c6db743518f8d9d77f2c6259b5d277
```
--------------------------------
### Get Image Relative Path
Source: https://timber.github.io/docs/v2/reference/timber-externalimage
Use the path() method to get the relative path to the image file.
```twig
```
--------------------------------
### Modified Author Example in HTML
Source: https://timber.github.io/docs/v2/reference/timber-image
An example showing how the name of the last modified author is displayed in HTML.
```html
Last updated by Harper Lee
```