এসসিআরসিট ছাড়াই The_post_thumbnail?


12

ওয়ার্ডপ্রেস ৪.৪ ফাংশন srcsetব্যবহার করার সাথে একাধিক চিত্রের মাপ যুক্ত করে the_post_thumbnail। এসসিআরসিট ছাড়াই কেবল একটি চিত্রের আকার পাওয়া সম্ভব?

আমি বুঝতে পেরেছি যে srcsetসমস্ত চিত্র থেকে অক্ষম করার জন্য একটি ফিল্টার যুক্ত করা সম্ভব তবে srcsetনির্দিষ্ট থাম্বনেল আকারকে কল করার সময় আমি কেবলমাত্র অক্ষম করতে চাই (উদাহরণস্বরূপ কেবল যখন পুরো চিত্রের আকারকে কল করা হয়)।

উত্তর:


13

একটি নির্দিষ্ট থাম্বনেইল আকারে কল করার সময় আমি কেবলমাত্র এসসিআরসেটটি অক্ষম করতে চাই (উদাহরণস্বরূপ কেবলমাত্র পুরো চিত্রের আকারকে কল করার সময়)।

এখানে দুটি ধারণা দেওয়া হয়েছে (যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি):

পন্থা # 1

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বৈশিষ্ট্য থাকবে না contain

মামলার জন্য:

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ফাংশনটি শেষ হওয়ার পরে আপনার সম্ভবত ফিল্টারটি সরিয়ে ফেলতে হবে
মার্ক কপলুন

আমি সেই পদ্ধতিকে যুক্ত করেছি যেখানে আমরা ম্যানুয়ালি ফিল্টার কলব্যাক যোগ / অপসারণ করি। আমি অন্য পদ্ধতির মধ্যে গণনাটি উদাহরণটি ব্যবহার করে কেবলমাত্র প্রতিটি_পোস্ট_থম্বনেইল () কল করার জন্য একবার @ মারকক্যাপলুন
বার্গিরে

আমি কোড স্নিপেটকে সহজ করে দিয়েছি, আমাকে এই সম্পর্কে আবার ভাবতে দেওয়ার জন্য ধন্যবাদ ;-) @ মার্কক্যাপলুন
বার্জায়ার

1
:) ফিল্টারগুলিতে বেনামে ফাংশনগুলির প্রতি আমার অপছন্দকে দেখানোর জন্য আমি একটি উত্পাদনশীল উপায় খুঁজে পেয়েছি :)
মার্ক কাপলুন

1
অথবা সেখানে "রান ওয়ান টাইম" প্যারামিটার থাকা উচিত add_filter। এই প্যাটার্নটি সত্যই সাধারণ।
মার্ক কাপলুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.