wp_get_attachment_image_src siempre devuelve la imagen en tamaño completo
https://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src#Parameters me lleva a pensar que wp_get_attachment_image_src( $thumb_id, array(100, 100) )[0]
debería devolver una miniatura de 100x100, pero siempre devuelve la imagen en tamaño completo.
Cualquier ayuda sería muy apreciada.

Creo que este código te será útil:
// Obtener la URL de la imagen destacada en tamaño completo
$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full', false, '' );
// Mostrar la imagen con la URL obtenida
echo '<img src="'.$src[0].'" alt="'.esc_attr(get_the_title()).'" title="'.esc_attr(get_the_title()).'">';

Es necesario tener tamaños de imagen predefinidos. WordPress tiene 3 tamaños por defecto: miniatura 100x100, mediano 300x300 y grande 800x800. Además, tengo un tamaño adicional llamado img-polaroid de 700x320 definido en functions.ini.
El código para obtener las imágenes es:
$image_id = get_post_thumbnail_id();
$image_url = wp_get_attachment_image_src($image_id, 'img-polaroid');
$image_url = $image_url[0];
'img-polaroid' es el '$size' que recupera 700x320, y la forma de imprimir la imagen es:
<img src="<?php echo $image_url; ?>" class="img-polaroid" style="margin:5px 0px 15px;" alt="Imagen polaroid" title="Imagen en estilo polaroid">
Donde class="img-polaroid" es el tamaño real para mostrar, como 100x100 o 200x100 con estilo de foto polaroid definido en los estilos CSS; o puedes usar dentro del código HTML de la imagen height=100 width=100. Con ambos métodos la imagen se verá clara y con buena definición. Para mis propósitos, img-polaroid tiene un tamaño de 320x200 y también está definido como tamaño responsivo.
Si obtienes la imagen $image_url = wp_get_attachment_image_src($image_id,'thumbnail'); e intentas mostrarla en un tamaño mayor, la imagen aparecerá pixelada. ***
Por lo tanto, intenta obtener el tamaño de imagen más cercano al tamaño que necesitas mostrar para no sobrecargar tu página

Incluso cuando intento obtener una imagen por su nombre, todavía resulta en la imagen de tamaño completo. Por ejemplo, echo wp_get_attachment_image_src( $thumb, 'medium' )[0];
aún devuelve una imagen de tamaño completo.

@corysimmons img src=(phpcode &image_url) imprimirá la imagen, medium, full, large son solo tamaños de resolución, intenta ajustar con altura y ancho dentro del estilo CSS o códigos HTML. Si todavía aparece en tamaño completo, necesitas sobrescribir el estilo de la imagen con otro usando un comentario !important, ej. .thumb img{widht:100px !important; height:auto}

... me lleva a creer que wp_get_attachment_image_src( $thumb_id, array(100, 100) )[0] devolvería una miniatura de 100x100...
Eso no es exactamente lo que ocurre. La mayor parte del trabajo lo realiza image_downsize()
como puedes ver cerca del principio de wp_get_attachment_image_src()
:
692 // obtiene una miniatura o imagen intermedia si existe
693 if ( $image = image_downsize($attachment_id, $size) )
694 return $image;
Si revisas las notas de esa función verás:
134 * La URL podría ser la imagen original, o podría ser una versión redimensionada. Esta
135 * función no creará una nueva copia redimensionada, solo devolverá una ya
136 * redimensionada si existe.
Lo que obtienes (según puedo determinar) es el tamaño más cercano al solicitado con un array que contiene las dimensiones solicitadas de la imagen o las dimensiones reales de la imagen si el tamaño solicitado es mayor que la imagen más grande. Se espera que hagas el resto con HTML y CSS.
