मुझे सभी संलग्न स्क्रिप्ट के लिए $ हैंडल कैसे मिलेगा?


18

क्या प्रत्येक स्क्रिप्ट के लिए $ हैंडल प्राप्त करने का कोई तरीका है जिसे एनकाउंटर किया गया है?

क्या कोई ऐसा सरणी है जो सभी हैंडल रखता है ताकि मैं इसके माध्यम से लूप कर सकूं और प्रत्येक $ हैंडल का उपयोग करके कुछ कर सकूं?

जवाबों:


25

$wp_scriptsवैश्विक सभी स्क्रिप्ट डेटा रखती है:

function wpa54064_inspect_scripts() {
    global $wp_scripts;
    foreach( $wp_scripts->queue as $handle ) :
        echo $handle;
    endforeach;
}
add_action( 'wp_print_scripts', 'wpa54064_inspect_scripts' );

5
WP 4.2.0 के रूप में - $wp_scripts = wp_scripts();सीधे वैश्विक तक पहुँचने से बेहतर हो सकता है क्योंकि यह प्रारंभ हो जाएगा $wp_scriptsयदि इसे सेट नहीं किया गया है।
जग्गू

आपको प्राथमिकता को जोड़ना चाहिए , ,9999जैसे कि add_action( 'wp_print_scripts', wpa54064_inspect_scripts', 9999 );आप उन लिपियों को देख रहे होंगे जो फ़ंक्शंस द्वारा धोखा दिए गए हैं। फाइल
Ryszard Jkdraszyk

2

क्या प्रत्येक स्क्रिप्ट के लिए $ हैंडल प्राप्त करने का कोई तरीका है जिसे एनकाउंटर किया गया है?

आप $wp_scripts->queueएक विशिष्ट हुक पर निरीक्षण करने की कोशिश कर सकते हैं लेकिन यह आपको वर्डप्रेस द्वारा उपयोग किए जाने वाले सभी हैंडल की सूची नहीं देगा, यह विश्वास है या नहीं।

उदाहरण के लिए, आप WP v4.7.5 में स्टॉक ट्वेंटी सत्रह विषय की सूची प्राप्त करने के लिए wp_head, जो wp_print_scriptsकार्रवाई को चलाता है, हुक कर सकते हैं $handles:

function get_enqueued_scripts () {
    $scripts = wp_scripts();
    var_dump( array_keys( $scripts->groups ) );
}

add_action( 'wp_head', 'get_enqueued_scripts' );

और $handlesसे $wp_scripts->groupsआउटपुट की सूची होगी:

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

इस बिंदु पर, यदि आप तुलना करना चाहते हैं कि $wp_scripts->queueआपके पास क्या मौजूद है, तो आपको केवल ऊपर का सबसेट दिखाई देगा।

इसलिए, यहां तक कि ऊपर दिखाए गए हैंडल की पूरी सूची भी प्रदान wp_print_scripts नहीं की जाएगी , यदि आप इसके बाद हैं। और उन्हें पाने के लिए हमेशा समूहबद्ध निर्भरता पर निर्भर रहना संभव नहीं है।

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