Wordpress:将“srcset”和“sizes”属性添加到来自定制器的图像

Wordpress: adding ‘srcset’ and ‘sizes’ attributes to image from customizer

Wordpress 自动将 srcsetsizes 属性添加到来自 post 的所有图像。太好了。

但是如何让 WordPress 将这些属性添加到来自自定义程序输入的图像?

在我的例子中:posts 的默认图像。当 post 中没有上传图片时,会显示该默认图片。由用户通过定制器上传,使用get_theme_mod.

调用

图片来自 post(工作正常,添加了所有属性):

get_the_post_thumbnail($post->ID, 'news', array('class' => 'img-responsive'));

如果没有提供图像:加载默认图像(没有'scrset'和'sizes'

'<img src="' . esc_url( get_theme_mod( 'default_image' ) ) . '" alt="default image" class="img-responsive" />'

wp_image_add_srcset_and_sizes() 似乎是要走的路,但它需要我不知道从哪里获得的属性。

感谢您的帮助!

这个函数可以解决问题:

function create_responsive_image( $img ) {
  $img_id = attachment_url_to_postid( $img );
  $img_srcset = wp_get_attachment_image_srcset( $img_id );
  $img_sizes = wp_get_attachment_image_sizes( $img_id );
  return '<img src="' . $img . '" srcset="' . esc_attr( $img_srcset ) . '" sizes="' . esc_attr( $img_sizes ) . '">';
}