Isset में "सब" क्या है ($ wp_filter ['all'])


10

मैं वर्डप्रेस में नौसिखिया हूँ। मैं यह समझने की कोशिश कर रहा हूं कि यह XHTML पृष्ठ कैसे उत्पन्न करता है। मुझे लगता है कि यह फ़ंक्शन है do_action( 'hook-name' ), लेकिन isset( $wp_filter['all] )फ़ंक्शन do_action को पढ़ते समय मैं निर्देश की समझ के साथ फंस गया हूं क्योंकि मुझे समझ में नहीं आता है कि शब्द का अर्थ क्या है all

क्या यह एक PHP सुविधा या एक वर्डप्रेस है?

जवाबों:


9

allबस एक स्ट्रिंग है जिसे वर्डप्रेस डेवलपर्स ने किसी भी अन्य हुक की तुलना में अलग तरह से व्यवहार करने के लिए चुना है। जब आप संलग्न करते हैं all, तो आपका कॉलबैक अन्य सभी हुक के लिए फायर करेगा ।

के स्रोत को देखने में मैं बहुत अधिक समय नहीं लगाऊंगा do_action, बस यह जानिए:

  1. add_action( 'x', 'whatever' )का मतलब होगा whateverआगdo_action( 'x' )
  2. add_action( 'all', 'whatever' )हुक के नाम की परवाह किए बिना हर केwhatever लिए आग का मतलब होगा । do_action

5

सशर्त if ( isset($wp_filter['all']) ) {आप इन हुक बनाने के कार्यों में सही पा सकते हैं:

  • apply_filters
  • apply_filters_ref_array
  • do_action
  • do_action_ref_array

इनके बीच अंतर भेजे गए तर्कों की संख्या में है। या तो हमें कई तर्कों की जरूरत है, इस प्रकार ref_arrayया एक ही तर्क। अन्य अंतर "एक्शन बनाम फिल्टर" सरल है, एक्शन किसी भी फ़ंक्शन / एक्शन को कर सकता है, और फ़िल्टर का नाम आमतौर पर उन फ़ंक्शन के लिए आरक्षित होता है जो स्ट्रिंग डेटा लेते हैं और उस डेटा को फ़िल्टर करते हैं।

ठीक है, ये हैं कि आप हुक कैसे बनाते हैं। और हुक में नाम होते हैं, और आप एक ही हुक नाम पर कई फ़ंक्शन नामों को पढ़ सकते हैं (पढ़ें: टैग)।

यहाँ छवि विवरण दर्ज करें

लेकिन एक बार जब आप विशिष्ट हुक से जुड़े सभी कार्यों को परिभाषित करते हैं, तो आपको कहीं न कहीं सभी हुक नामों और संबंधित फ़ंक्शन नामों को संग्रहीत करने की आवश्यकता होती है। यही कारण है कि हम global $wp_filterवर्डप्रेस में ave करते हैं । यदि आप उस वेरिएबल को आउटपुट करते हैं तो आपको कुछ ऐसा मिलेगा ...

Array
(
    [pre_term_name] => Array
        (
            [10] => Array
                (
                    [sanitize_text_field] => Array
                        (
                            [function] => sanitize_text_field
                            [accepted_args] => 1
                        )

                    [wp_filter_kses] => Array
                        (
                            [function] => wp_filter_kses
                            [accepted_args] => 1
                        )

                )

            [30] => Array
                (
                    [_wp_specialchars] => Array
                        (
                            [function] => _wp_specialchars
                            [accepted_args] => 1
                        )

                )

        )

ठीक है, हम इस चर के नाम पर बहस नहीं करते हैं। व्यक्तिगत रूप से, मैं इसे भिन्न, संभावित कहूंगा $wp_hooksक्योंकि यह नाम नहीं लिया गया है। हालांकि, अगर हम इतिहास हम मिलेगा में वापस पाने do_actionके बाद से है @since 1.2.0और apply_filtersहै @since 0.71(9 जून, 2003 को जारी)। यह आपको बहुत अच्छी व्याख्या देता है कि इसे क्यों कहा जाता है $wp_filter। यह सबसे अधिक संभावना है क्योंकि फ़िल्टर पहले वर्डप्रेस में पेश किए गए थे। बाद में उन्होंने कार्रवाई शुरू की।

@TheDeadMedic की ओर से कहा जा रहा है ...

add_action ('सभी', 'जो भी हो') हुक के नाम की परवाह किए बिना, हर do_action के लिए जो भी आग का मतलब होगा।

मैंने सवाल उठाया कि हमें आवश्यकता क्यों है $wp_filter['all']? बस कुछ उदाहरण हैं। भविष्य के वर्डप्रेस संस्करणों में सिस्टम आंतरिक सुविधाओं का आत्मनिरीक्षण, परीक्षण और संभावित अधिक।

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