wp_get_attachment_image_src всегда возвращает изображение в полном размере
https://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src#Parameters предполагает, что wp_get_attachment_image_src( $thumb_id, array(100, 100) )[0]
должен возвращать миниатюру размером 100x100, но вместо этого всегда возвращается изображение в полном размере.
Буду признателен за любую помощь.

Думаю, этот код вам поможет:
// Получаем URL изображения записи в полном размере
$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full', false, '' );
// Выводим HTML-тег изображения с полученным URL
echo '<img src="'.$src[0].'">';

Вам необходимо иметь предопределенные размеры изображений. В WordPress есть 3 стандартных размера: миниатюра 100x100, средний 300x300 и большой 800x800, а у меня есть дополнительный размер под названием img-polaroid 700x320, определенный в functions.ini.
Таким образом, код для получения изображений:
$image_id=get_post_thumbnail_id();
$image_url = wp_get_attachment_image_src($image_id,'img-polaroid');
$image_url=$image_url[0];
'img-polaroid' - это '$size', который возвращает изображение размером 700x320, а способ вывода изображения:
img src="php echo $image_url" class="img-polaroid" style="margin:5px 0px 15px;"
Где class="img-polaroid" - это реальный размер для вывода, например 100x100 или 200x100, со стилем поляроидного фото, определенным в CSS; или вы можете использовать внутри HTML-кода img heigh=100 wight=100. При обоих методах изображение будет четким и хорошего качества. Для моих целей img-polaroid имеет размер 320x200 и также определен как адаптивный размер.
Если вы получаете изображение $image_url = wp_get_attachment_image_src($image_id,'thumbnail'); и пытаетесь вывести его в большем размере, изображение будет размытым. ***
Поэтому старайтесь получать размер изображения, максимально близкий к тому, который вам нужно вывести, чтобы не перегружать вашу страницу

Даже когда я пытаюсь получить изображение по его имени, все равно возвращается изображение в полном размере. Например, echo wp_get_attachment_image_src( $thumb, 'medium' )[0];
все равно возвращает изображение в полном размере.

@corysimmons img src=(phpcode &image_url) выведет изображение, medium, full, large — это только размеры разрешения, попробуйте настроить с помощью высоты и ширины в CSS стилях или html коде. Если изображение все равно отображается в полном размере, вам нужно переопределить стиль img с помощью другого стиля, используя комментарий !important, например .thumb img{widht:100px !important; height:auto}

... заставляет меня думать, что wp_get_attachment_image_src( $thumb_id, array(100, 100) )[0] вернет миниатюру размером 100x100...
На самом деле происходит не совсем это. Большая часть работы выполняется функцией image_downsize()
, как видно в начале функции wp_get_attachment_image_src()
:
692 // получаем миниатюру или промежуточное изображение, если оно есть
693 if ( $image = image_downsize($attachment_id, $size) )
694 return $image;
Если посмотреть заметки к этой функции, можно увидеть:
134 * URL может быть оригинальным изображением или его измененной версией. Эта
135 * функция не создает новую измененную копию, она просто возвращает уже
136 * существующую измененную версию, если таковая имеется.
Что вы получаете (насколько я могу судить) - это ближайший размер к запрошенному с массивом, содержащим запрошенные размеры изображения или фактические размеры изображения, если запрошенный размер больше самого большого изображения. Ожидается, что остальное вы сделаете с помощью HTML и CSS.
