Quiero deshabilitar el srcset solo cuando llame a un tamaño de miniatura específico (por ejemplo, solo cuando llame a un tamaño de imagen completo).
Aquí hay dos ideas (si te entiendo correctamente):
Enfoque n. ° 1
Verifiquemos el tamaño del post_thumbnail_size
filtro. Si coincide con un tamaño correspondiente (por ejemplo full
), nos aseguramos de que $image_meta
esté vacío, con el wp_calculate_image_srcset_meta
filtro. De esa manera podemos rescatarnos de la wp_calculate_image_srcset()
función antes (antes de usar los filtros max_srcset_image_width
o wp_calculate_image_srcset
para deshabilitarla):
/**
* 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;
}
Si tenemos:
the_post_thumbnail( 'full' );
entonces la <img>
etiqueta generada no contendrá el srcset
atributo.
Para el caso:
the_post_thumbnail();
Podríamos hacer coincidir la 'post-thumbnail'
cadena de tamaño.
Enfoque n. ° 2
También podríamos agregar / eliminar el filtro manualmente con:
// 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
filtro cuando finalice la funciónadd_filter
. Este patrón es realmente común.