मैं केवल विशिष्ट थंबनेल आकार को कॉल करते समय srcset को अक्षम करना चाहता हूं (उदाहरण के लिए केवल पूर्ण छवि आकार को कॉल करते समय)।
यहां दो विचार दिए गए हैं (यदि मैं आपको सही तरीके से समझता हूं):
दृष्टिकोण # १
post_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' );
wp_calculate_image_srcset_meta
समारोह समाप्त होने पर आपको संभवतः फ़िल्टर को हटाने की भी आवश्यकता होती है