add_image_size( $name, $width, $height, $crop )
समारोह सुंदर पर्याप्त एक ही का उपयोग कर एकाधिक कॉल को संभालने के लिए है $name
। यह बस मौजूदा मूल्य को अधिलेखित करता है :
$_wp_additional_image_sizes[$name] = array( 'width' => absint( $width ), 'height' => absint( $height ), 'crop' => (bool) $crop );
तो इसका मतलब है कि कस्टम छवि आकार की मूल थीम की परिभाषा को ओवरराइड करने के लिए आपको बस इतना करना है कि पेरेंट थीम के कॉल के बाद आपकी कॉल add_image_size()
फायर हो जाए ।
यह मानते हुए कि मूल विषय ऐसा है:
function parent_theme_setup() {
add_image_size( 'name', 500, 200, true );
add_image_size( 'new-name', 400, 300, true );
}
add_action( 'after_setup_theme', 'parent_theme_setup' );
तब पैरेंट थीम की add_image_size()
कॉल after_setup_theme
हुक पर डिफ़ॉल्ट प्राथमिकता (यानी 10
) में आग लगाती है ।
(नोट: यदि कॉलबैक में कॉल लपेटे नहीं जाते हैं , तो वे plugins_loaded
हुक पर प्राथमिकता से फायर करते हैं 10
।)
यहाँ महत्वपूर्ण हिस्सा है: बच्चे की थीम functions.php
फ़ाइल पहले पार्स की गई है पेरेंट थीम के , इसलिए यदि आप अपने add_image_size()
कॉल्स को फायर करने के लिए एक ही हुक का उपयोग करते हैं, तो वे पेरेंट थीम के add_image_size()
कॉल्स से ओवरराइड हो जाएंगे ।
समाधान यह है कि बच्चे के थीम को सुनिश्चित करने के लिए बाद में हुक या कम प्राथमिकता का उपयोग किया जाएadd_image_size()
माता-पिता के थीम के बाद कॉल फायर हो जाती है।
यह चाल चलनी चाहिए, इस बात की परवाह किए बिना कि माता-पिता थीम अपनी कॉल को कैसे फायर करते हैं:
function child_theme_setup() {
add_image_size( 'name', 400, 300, true );
}
add_action( 'after_setup_theme', 'child_theme_setup', 11 );
ध्यान दें कि हम एक ही after_setup_theme
हुक का उपयोग करते हैं , लेकिन प्राथमिकता के साथ शुरू होने वाले उच्च प्राथमिकता (कम संख्या) से कम प्राथमिकता (उच्च संख्या) के क्रम में (यानी 11
इसके बजाय 10
कॉलबैक आग का उपयोग करें) 0
। इसलिए प्राथमिकता के बाद कॉलबैक हुक में 11
आग लग जाएगी। कॉलबैक प्राथमिकता में शामिल है ।10
यह भी ध्यान दें कि after_setup_theme
हुक ही आग के बादplugins_loaded
, हुक तो यह कॉलबैक अभी भी, माता पिता के विषय को पार कर जाएगी जनक विषय है, भले ही _doing_it_wrong()
एक उपयुक्त कॉलबैक में इस तरह के कॉल, एक उपयुक्त हुक में शौकीन लपेटकर नहीं द्वारा।
add_image_size()
कॉल में केवल नग्न रूप से बैठेfunctions.php
हैं, या वे ठीक से कॉलबैक के अंदर लिपटे हुए हैं, और अंदर आ गए हैंafter_setup_theme
? यह जानना कि आपके प्रश्न का उत्तर देना कितना महत्वपूर्ण है।