get_thumbnail_id возвращает изображение в полном размере
Мне нужна миниатюра избранного изображения записи в виде URL. Я использую следующий код для получения уменьшенной версии избранного изображения.
$post[$i]['thumbnail'] = wp_get_attachment_url(get_post_thumbnail_id($post[$i]['id'], 'thumbnail'));
Однако функция постоянно возвращает изображение в полном размере. Я даже пробовал:
$post[$i]['thumbnail'] = wp_get_attachment_url(get_post_thumbnail_id($post[$i]['id'], array(120,140)));
Но все равно возвращается большое изображение. Как это можно исправить?

Вы можете использовать функцию wp_get_attachment_image_src()
$thumb_id = get_post_thumbnail_id($post[$i]['id']);
$thumb_url_array = wp_get_attachment_image_src($thumb_id, 'thumbnail', true);
$post[$i]['thumbnail'] = $thumb_url_array[0];
В приведенном коде функция wp_get_attachment_image_src()
возвращает массив с данными изображения: источник, высоту и ширину. $thumb_url_array[0]
содержит URL миниатюры.

Сначала добавьте эту строку в файл functions.php
add_image_size( 'custom-size', 120, 140 );
Затем вы можете использовать этот размер изображения следующим образом:
<?php $thumb_id = get_post_thumbnail_id( $id );
if ( '' != $thumb_id ) {
$thumb_url = wp_get_attachment_image_src( $thumb_id, 'custom-size', true );
$image = $thumb_url[0];
}?>
<img src="<?php echo $image;?>" alt="Пользовательское изображение" title="Пользовательское изображение">
Должно работать отлично

но почему 'thumbnail' также возвращает полный размер изображения? а не размер миниатюры?

эй, размер миниатюры задается в админке WordPress: Настройки->Медиафайлы->Размер миниатюры. Пожалуйста, проверь, какой размер указан для миниатюр в медиафайлах

@amrith там установлен стандартный размер 150x150, но я получаю полный размер изображения, а не миниатюру

Синтаксис определяется следующим образом:
<?php echo get_the_post_thumbnail( $post_id, $size, $attr ); ?>
Вы можете получить миниатюру WordPress по умолчанию (150x150) с помощью следующего кода:
<?php get_the_post_thumbnail( $post_id, 'thumbnail' ); ?>
Если вам нужна миниатюра пользовательского размера, используйте следующий код:
<?php get_the_post_thumbnail( $post_id, array( 200, 200) ); ?>
Для дополнительной информации посетите WordPress Codex: Нажмите здесь
