Wordpress:从定制器向图像添加“srcset”和“尺寸”属性

dig*_*dig 4 php wordpress themes image srcset

Wordpress自动为来自帖子的所有图像添加属性srcsetsizes那\xe2\x80\x99s 非常整洁。

\n\n

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

\n\n

就我而言:帖子的默认图像。当帖子中未上传图像时,会显示该默认图像。它\xe2\x80\x99s由用户通过定制器上传并使用调用get_theme_mod

\n\n

来自帖子的图像(工作正常,所有属性均已添加):

\n\n
get_the_post_thumbnail($post->ID, \'news\', array(\'class\' => \'img-responsive\'));\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果未提供图像:加载默认图像(没有 \xe2\x80\x99scrset\xe2\x80\x99 和 \xe2\x80\x99sizes\xe2\x80\x99

\n\n
\'<img src="\' . esc_url( get_theme_mod( \'default_image\' ) ) . \'" alt="default image" class="img-responsive" />\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

感谢您的帮助!

\n

dig*_*dig 6

这个函数可以解决这个问题:

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 ) . '">';
}
Run Code Online (Sandbox Code Playgroud)