Images
Conifer extends Timber's Image class with helpers for managing registered image sizes and reading image dimensions.
Image Sizes
Default Image Sizes
Conifer includes the standard WordPress size names by default:
thumbnailmediummedium_largelarge
Conifer reads each size's dimensions from WordPress options (for example, thumbnail_size_w and thumbnail_size_h), so the actual values reflect your site's Media settings.
Getting Image Sizes
Use get_sizes() to fetch all configured sizes, or get_size() to fetch a single size by name.
php
<?php
declare(strict_types=1);
use Conifer\Post\Image;
// Get all configured sizes.
$sizes = Image::get_sizes();
// Get one configured size.
$size = Image::get_size('medium');Adding a New Image Size
Use Conifer's wrapper around add_image_size() to register custom sizes.
php
<?php
use Conifer\Post\Image;
use Conifer\Site;
$site = new Site();
$site->configure(function () {
Image::add_size('home-hero', 1440, 790, true);
Image::add_size('interior-hero', 1440, 400, true);
Image::add_size('interior-fullbleed', 1440, 530, true);
});Image dimensions
Use height(), width(), and aspect() on a Conifer image instance.
php
<?php
declare(strict_types=1);
use Timber\Timber;
$context = Timber::context();
$cover_image_id = $context['post']->cover_image;
$image = Timber::get_image($cover_image_id);
if ($image) {
// Original image dimensions.
$height = $image->height();
$width = $image->width();
// Dimensions for a specific registered size.
$custom_height = $image->height('home-hero');
$custom_width = $image->width('home-hero');
// Underlying file aspect ratio.
$aspect = $image->aspect();
}You can also use these methods directly in Twig templates:
twig
<!-- Images are not global variables, they must be fetched first -->
{% set image = get_image($some_id) %}
<img
src="{{ image.src }}"
height="{{ image.height }}"
width="{{ image.width }}"
/>