Миниатюры в WordPress
Справка по использованию миниатюр WordPress сформированная в процессе разработки кастомной темы.
Примечание
Если на странице редактирования поста не отображается метабокс "Миниатюра" - нужно добавить эту функцию для данного типа постов. Добавить поддержку post-thumbnails
можно в файле functions.php вашей темы или в хуке after_setup_theme
вашего плагина:
add_theme_support('post-thumbnails', ['post', 'movie']);
set_post_thumbnail_size(70, 70, $crop = false);
Перечень размеров миниатюр
Все доступные размеры миниатюр в блоге зарегистрированные функцией add_image_size():
$image_sizes = get_intermediate_image_sizes(); // массив доступных размеров превьюшек
Вывести доступные размеры миниатюр в режиме отладки:
function get_intermediate_image_sizes_my_debug() {
global $_wp_additional_image_sizes;
$additional_image_sizes = $_wp_additional_image_sizes;
uasort($additional_image_sizes, function ($a, $b) {
return $a['width'] - $b['width'];
});
echo "<pre>";
foreach ($additional_image_sizes as $key => $p) {
$size = "{$p['width']}x{$p['height']}";
$size = str_pad($size, 8);
echo "$size $key (crop: {$p['crop']})\n";
}
echo "</pre>";
}
get_intermediate_image_sizes_my_debug();
Получение миниатюр поста
По дефолту мы имеем следующие размеры миниатюр изображений:
thumbnail - 150х150, маленькая миниатюра, класс .attachment-thumbnail. Алиас: thumb
medium - 300х300, средняя, .attachment-medium
large - 640х640, большая, .attachment-large
full - оригинал, .attachment-full
Примечание
Если вы укажете несуществующий размер миниатюры, то WordPress вернет вам ссылку на оригинальную картинку, а не пустую строку.
Проверить поддержку темой миниатюры указанного размера:
$thumbnail_size = current_theme_supports('post-thumbnail') ? 'post-thumbnail' : 'thumbnail';
Получить ID записи прикрепленной к посту миниатюры:
$thumbnail_id = get_post_thumbnail_id($post['ID']);
Проверить наличие миниатюры у поста и вывести миниатюру:
if (has_post_thumbnail($post_id)) {
the_post_thumbnail();
}
Получить URL миниатюры текущего поста:
get_the_post_thumbnail_url('thumbnail'); // URL
Вывести путь к миниатюре:
the_post_thumbnail_url($size = 'post-thumbnail'); // URL
Сформировать тег IMG:
the_post_thumbnail('thumbnail'); // <img src=".." class="attachment-thumbnail">
При генерации IMG тега, будет добавлен класс указывающий на размер миниатюры.
Получить путь к изображению:
$image_path = get_attached_file($attachment_id);
Добавление своих размеров миниатюр
Задать собственные размеры миниатюр можно из админки блога: Настройки » Медиафайлы.
Или же вы можете зарегистрировать кастомный размер миниатюры, который будет создаваться при загрузке изображения на сервер блога:
add_image_size('single-post-thumbnail', 590, 180 );
add_image_size('medium', 728, 380, $crop = true);
Ядро WordPress предоставляет возможность создавать миниатюры изображений только при загрузке изображения!
Генерация миниатюр
Важно понимать, что при изменении размеров миниатюр или при добавлении нового размера превьюшки - нужно перегенерить миниатюры для всех ранее загруженных изображений!
Для этого можно воспользоваться плагином "Regenerate Thumbnails". После установки, функционал плагина доступен в: Инструменты » Regen. Thumbnails.
#wp image preview, #wp image thumbnails