Wordpress:将“srcset”和“sizes”属性添加到来自定制器的图像
Wordpress: adding ‘srcset’ and ‘sizes’ attributes to image from customizer
Wordpress
自动将 srcset
和 sizes
属性添加到来自 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 ) . '">';
}
Wordpress
自动将 srcset
和 sizes
属性添加到来自 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 ) . '">';
}