Ich möchte das srcset nur deaktivieren, wenn eine bestimmte Miniaturbildgröße aufgerufen wird (zum Beispiel nur, wenn die volle Bildgröße aufgerufen wird).
Hier sind zwei Ideen (wenn ich dich richtig verstehe):
Ansatz Nr. 1
Lassen Sie uns die Größe des post_thumbnail_size
Filters überprüfen . Wenn es einer entsprechenden Größe entspricht (z. B. full
), stellen wir sicher, dass das $image_meta
mit dem wp_calculate_image_srcset_meta
Filter leer ist . Auf diese Weise können wir die wp_calculate_image_srcset()
Funktion frühzeitig verlassen (früher als die Filter max_srcset_image_width
oder wp_calculate_image_srcset
, um sie zu deaktivieren):
/**
* 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;
}
Wenn wir haben:
the_post_thumbnail( 'full' );
dann enthält das generierte <img>
Tag das srcset
Attribut nicht.
Im Falle:
the_post_thumbnail();
Wir könnten die 'post-thumbnail'
Größenfolge anpassen.
Ansatz Nr. 2
Wir können den Filter auch manuell hinzufügen / entfernen mit:
// 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' );
wp_calculate_image_srcset_meta
Filter entfernen , wenn die Funktion endetadd_filter
. Dieses Muster ist wirklich häufig.