質問: srcsetのないthe_post_thumbnail? the_post_thumbnail関数を使用するとき、wordpress 4.4はsrcsetで複数の画像サイズを追加します。 srcsetを使わずに1つの画像サイズだけを取得することは可能ですか?すべての画像からsrcsetを無効にするフィルタを追加することは可能ですが、特定のサムネイルサイズを呼び出す場合にのみsrcsetを無効にすることをお勧めします(たとえば、フル画像サイズを呼び出す場合のみ)。
回答: srcsetを無効にしたいのは、特定のサムネイルサイズを呼び出すときだけです(たとえば、フルイメージサイズを呼び出すときだけ)。 これが2つのアイデアです(私があなたを正しく理解していれば):アプローチ1post_thumbnail_sizeフィルタからサイズをチェックしましょう。対応するサイズ(例:full)と一致する場合は、$image_metaフィルタを使用して、wp_calculate_image_srcset_metaが空であることを確認します。こうすることで、wp_calculate_image_srcset()関数から早期に回避することができます(無効にするためにmax_srcset_image_widthまたはwp_calculate_image_srcsetフィルタを使用するよりも早く)。/** * remove the srcset attribute from post thumbnails * that are called with the 'full' size string: the_post_thumbnail( 'full' ) * * @link http://wordpress.stackexchange.com/a/214071/26350 */ add_filter( 'post_thumbnail_size', function( $size ) { if( is_string( $size ) && 'full' === $size ) add_filter( 'wp_calculate_image_srcset_meta', '__return_null_and_remove_current_filter' ); return $size; } ); // would be handy, in this example, to have this as a core function ;-) function __return_null_and_remove_current_filter ( $var ) { remove_filter( current_filter(), __function__ ); return null; } 我々が持っているならば:the_post_thumbnail( 'full' ); 生成された<img>タグはsrcset属性を含みません。その場合:the_post_thumbnail(); 'post-thumbnail'サイズの文字列と一致させることができます。アプローチ2手動でフィルタを追加/削除することもできます。// add a filter to remove srcset attribute from generated <img> tag add_filter( 'wp_calculate_image_srcset_meta', '__return_null' ); // display post thumbnail the_post_thumbnail(); // remove that filter again remove_filter( 'wp_calculate_image_srcset_meta', '__return_null' );