Функция set_post_thumbnail_size()
в WordPress позволяет разработчику зарегистрировать размер изображения для миниатюр постов (post thumbnails). Это важный инструмент, который управляет тем, как миниатюры будут отображаться на сайте. В этой статье мы рассмотрим основные параметры функции и предоставим несколько примеров ее использования.
set_post_thumbnail_size( int $width, int $height, bool|array $crop = false )
Описание
Функция set_post_thumbnail_size()
регистрирует стандартный размер миниатюры поста. Этот размер будет применяться ко всем миниатюрам, если не указано иное. При этом, чтобы функция начала работать, в теме нужно добавить поддержку миниатюр с помощью функции add_theme_support( 'post-thumbnails' );
.
Параметры
$width
(int) – Ширина изображения в пикселях. Этот параметр обязателен.$height
(int) – Высота изображения в пикселях. Также обязательный параметр.$crop
(bool | array) – Определяет поведение обрезки изображения:- Если значение
false
(по умолчанию), изображение будет масштабироваться. - Если
true
, изображение будет обрезано до указанных размеров с центром обрезки. - Если передается массив, можно указать позицию обрезки: [x, y] (например,
['left', 'top']
).
- Если значение
Пример 1: Базовое определение миниатюры
Этот пример регистрирует стандартные размеры миниатюры в теме WordPress. Миниатюра будет отображаться с размерами 150×150 пикселей, и изображение будет масштабироваться, если оно больше.
function my_theme_setup() {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 150, 150 ); // 150px по ширине и высоте, масштабирование
}
add_action( 'after_setup_theme', 'my_theme_setup' );
Пример 2: Кадрирование изображения
В этом примере изображение будет обрезано до заданного размера 100×100 пикселей. Это значит, что лишние части изображения по краям будут отрезаны, чтобы оно поместилось в указанные размеры.
function custom_thumbnail_setup() {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 100, 100, true ); // Кадрирование изображения
}
add_action( 'after_setup_theme', 'custom_thumbnail_setup' );
Пример 3: Кадрирование с указанием позиции
Иногда требуется обрезать изображение с определенной стороны. В этом примере миниатюра будет обрезана с верхнего левого угла.
function advanced_thumbnail_setup() {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 200, 150, array( 'left', 'top' ) ); // Кадрирование с верхнего левого угла
}
add_action( 'after_setup_theme', 'advanced_thumbnail_setup' );
Пример 4: Масштабирование изображения
Если вам нужно просто масштабировать изображение, а не обрезать его, используйте следующий код. Здесь изображение будет масштабировано до 300×200 пикселей, сохраняя пропорции.
function no_crop_thumbnail_setup() {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 300, 200, false ); // Масштабирование без кадрирования
}
add_action( 'after_setup_theme', 'no_crop_thumbnail_setup' );
Как регенерировать существующие миниатюры?
Важно отметить, что set_post_thumbnail_size()
не изменяет размеры уже загруженных изображений. Для того чтобы пересоздать миниатюры по новым правилам, используйте плагин Regenerate Thumbnails. Этот плагин позволит пересоздать все существующие миниатюры в соответствии с новыми размерами.
Заключение
Функция set_post_thumbnail_size()
предоставляет гибкость в управлении миниатюрами постов, что особенно важно при создании уникального дизайна. Используя параметры кадрирования, можно добиться нужного отображения изображений для разных экранов и устройств.