Problema extraño: tengo una función:
function mytheme_get_responsive_image( $image_id ) {
$size="full";
$src = wp_get_attachment_image_url( $image_id, $size );
$class="myclass";
$alt = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
$srcset = wp_get_attachment_image_srcset( $image_id, $size );
$sizes="(min-width: 1200px) 354px, (max-width: 767px) 87vw, (max-width: 1024px) 52.2vw, (max-width: 1199px) 27.45vw";
$output="<img src="" . esc_attr( $src ) . '" ';
$output .= 'alt="' . esc_attr( $alt ) . '" ';
$output .= 'class="' . esc_attr( $class ) . ' wp-image-' . $image_id . '" ';
$output .= 'srcset="' . esc_attr( $srcset ) . '" ';
$output .= 'sizes="' . esc_attr( $sizes ) . '">';
return $output;
}
Cuando escribo el resultado de $output a un archivo de registro dice:
<img src="https://local.test/wp-content/uploads/2022/04/picture.jpg" alt="alttext" class="myclass wp-image-2305" srcset="https://local.test/wp-content/uploads/2022/04/picturejpg 1000w, https://local.test/wp-content/uploads/2022/04/picture.jpg 300w, https://local.test/wp-content/uploads/2022/04/picture.jpg 768w" sizes="(min-width: 1200px) 354px, (max-width: 767px) 87vw, (max-width: 1024px) 52.2vw, (max-width: 1199px) 27.45vw">
Eso es exactamente lo que quería.
Pero cuando saco la imagen en la barra lateral:
echo mytheme_get_responsive_image( $image_id );
entonces eso es lo que obtengo en el código final:
<img src="https://local.test/wp-content/uploads/2022/04/picture.jpg" alt="alttext" class="myclass wp-image-2305">
Los atributos scrset y tamaños no se muestran.
¿Cuál podría ser la razón?
.