कुछ कस्टम पोस्ट प्रकारों के लिए डिफ़ॉल्ट छवि आकारों की पीढ़ी को अक्षम कैसे करें?


12

मैंने कस्टम पोस्ट प्रकार का उपयोग किया, जहां 'थंबनेल', 'माध्यम' और 'बड़े' आकार की आवश्यकता नहीं है। मुझे इस आकार को अक्षम करने और फ़ंक्शन या प्लगइन बनाने की आवश्यकता है, जहां मैं सेट कर सकता हूं, प्रत्येक कस्टम पोस्ट प्रकार के लिए कौन सा छवि आकार आवश्यक है।

मेरा पहला कदम wp- / / media.php से get_intermediate_image_sizes फ़ंक्शन को हुक कर रहा है। मैंने इस कोड को functions.php में जोड़ा है लेकिन यह काम नहीं कर रहा है :(

add_filter('get_intermediate_image_sizes', 'get_intermediate_image_sizes_fixed');
function get_intermediate_image_sizes_fixed() {
    global $_wp_additional_image_sizes;
    //$image_sizes = array('thumbnail', 'medium', 'large'); // Standard sizes
    $image_sizes = array();
    if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) )
        $image_sizes = array_merge( $image_sizes, array_keys( $_wp_additional_image_sizes ) );
return apply_filters( 'intermediate_image_sizes', $image_sizes );
}   

UPD: मीडिया में इस लाइन का संपादन। एफपी काम कर रहा है। परिवर्तन नहीं उत्पन्न करने के बाद डिफ़ॉल्ट प्रकार।

$image_sizes = array('thumbnail', 'medium', 'large');

लेकिन काम को मेरा हुक कैसे बनाया जाए?


1
इसका उत्तर भी
चाहेंगे

2
यह नहीं है कि आप उस फ़िल्टर का उपयोग कैसे करते हैं। डिफ़ॉल्ट आकार साफ़ करने के लिए आपको बस इसे बहुत कम प्राथमिकता के साथ जोड़ना होगा और खाली सरणी वापस करनी होगी। हालाँकि यह आपकी समस्या का समाधान नहीं करेगा, क्योंकि यह सभी प्रकार के पोस्ट को प्रभावित करेगा। मुझे नहीं लगता कि वर्तमान WP संस्करण में आप जो चाहते हैं, वह करने का एक तरीका है। WP देवों से अनुरोध करें $attachment_idकि इस फ़ंक्शन के अंदर फ़िल्टर में तर्क जोड़ें । इस तरह आप अपने हुक के अंदर पोस्ट प्रकार की जांच कर सकते हैं
onetrickpony

मेरा कदम केवल प्रयोग है लेकिन पूर्ण समाधान नहीं है। मैं सही तरीके से फ़िल्टर का उपयोग कैसे कर सकता हूं? PS लिंक के लिए धन्यवाद ..
बोहदन हडल

WP में कोई भी बदलाव जो अब संभव बनाता है?
ड्राइविंग

कोई बदलाव नहीं। अभी भी वही समस्या है।
बोहदन हदल

जवाबों:


7

मुझे लगता है कि इस समय आपके पास एकमात्र समाधान सभी मध्यवर्ती छवि आकारों को अक्षम करना है:

add_filter( 'intermediate_image_sizes', '__return_empty_array', 99 );

और फिर मैन्युअल रूप से उन्हें पोस्ट प्रकार के आधार पर 'wp_generate_attachment_metadata' में हुक करके उत्पन्न करते हैं, जहां आपके पास अनुलग्नक आईडी तक पहुंच है (और इसलिए यह मूल पद के लिए है):

function do_your_stuff( $data, $attachment_id ) {
  // generate intermediate images

  return $data;
}

add_filter( 'wp_generate_attachment_metadata', 'do_your_stuff', 10, 2 );

अंतिम Add_filter में आपके द्वारा पास किए गए 10 और 2 पैरामीटर क्या हैं?
ल्यूक

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.