उत्पन्न थंबनेल के लिए कस्टम नाम सेट करें


9

क्या उन ऑटो जनरेटेड थंबनेल के नामकरण सम्मेलन को निर्धारित करने के लिए कोई फ़िल्टर उपलब्ध है?

कुछ इस तरह:

  • थंबनेल_150x150.jpg -> थंबनेल- s.jpg
  • थंबनेल_300x300.jpg -> थंबनेल- m.jpg
  • थंबनेल_600x600.jpg -> थंबनेल- l.jpg

जवाबों:


4

लगता है कि जवाब नहीं है ...

मैंने मुख्य कार्यों का पालन किया है और एक मृत-अंत पाया है। और इस पोस्ट को मिला ( मैं शीर्ष से add_image_size () फसल कैसे कर सकता हूं? ) जहां Rarst कहते हैं?

मध्यवर्ती छवि निर्माण अत्यंत कठोर है। Image_resize () इसे कोड के करीब रखता है और पूरी तरह से हुक की कमी है।

लेकिन , अन्य उत्तर की लीड ( ब्रैड से ) और उनके द्वारा प्रकाशित कोड ( वर्डप्रेस में इमेज क्रॉप पोजिशन ) के बाद, मुझे लगता है कि मुझे यह मिल गया :)

फ़ंक्शन में bt_generate_attachment_metadata, मैंने bt_image_make_intermediate_sizeअंतिम पैरामीटर को शामिल करने के लिए कॉल को संशोधित किया है$size

$resized = bt_image_make_intermediate_size( $file, $size_data['width'], $size_data['height'], $size_data['crop'], $size );

और समारोह की शुरुआत bt_image_make_intermediate_sizeको निम्नानुसार संशोधित किया गया है:

  • $sizeफ़ंक्शन में पैरामीटर जोड़ा गया
  • बजाय डिफ़ॉल्ट के nullलिए मूल्य $suffix, एक switchहमारी नई प्रत्यय करने के लिए
function bt_image_make_intermediate_size( $file, $width, $height, $crop = false, $size ) {
    if ( $width || $height ) {
        switch($size) {
            case 'thumbnail':
                $suffix = 't';
                break;
            case 'medium':
                $suffix = 'm';
                break;
            case 'large':
                $suffix = 'l';
                break;
            default:
                $suffix = null;
                break;
        }
        $resized_file = bt_image_resize( $file, $width, $height, $crop, $suffix, null, 90 );

यहाँ , केवल संदर्भ के लिए, मेरे मॉड के साथ पूर्ण कोड की एक प्रति।
और मूल से अलग है

बहुत शायद, सभी कोड एक नंगे हड्डी तक सिकुड़ सकते हैं, लेकिन इस तरह से हमें कस्टम क्रॉप्ड इमेज का लाभ मिलता है :))


1
क्षमा करें, अभी भी यात्रा कर रहा है। मैं जल्द ही इसका परीक्षण करूंगा और आपको बता दूंगा। धन्यवाद।
सीन ली

क्या यह जवाब अभी भी मान्य है? कुछ साल हो गए, इसलिए ...
एथिक्सक्स

2

आप फ़िल्टर की छवि का उपयोग कर सकते हैं_माके_डरमीट_साइज़ , लेकिन आपको यह पता लगाना होगा कि आप किस फ़ाइल को इंटरमीडिएट फ़ाइल में बदलना चाहते हैं, आपके द्वारा प्राप्त $ फ़ाइल नाम के अनुसार (और फिर फ़ाइल का नाम बदलें, क्योंकि इस बिंदु पर यह पहले ही उत्पन्न हो चुका है)।

मैं केवल "थंबनेल" के लिए एक मध्यवर्ती आकार की छवि उत्पन्न करता हूं, इसलिए यह इस तरह सरल है:

add_filter( 'image_make_intermediate_size', function( $filename ) {

    // old 2017_234783843-100x100.jpg
    $old = $filename;
    // new 2017_234783843-thumbnail.jpg
    $new = preg_replace("/(\d+_\d+)-\d+x\d+\.(.*)/i", "$1-thumbnail.$2", $old );

    rename($old, $new);

    return $new;
} );

1
रेगेक्स कम विशिष्ट हो सकता है"/(.*)-\d+x\d+\.(.*)/i"
बेनोइट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.