व्यवस्थापक और सामने के अंत दोनों में संलग्न होने के लिए एक स्क्रिप्ट रजिस्टर करें


12

जैसा कि मैं इसे समझता हूं, व्यवस्थापक लिपियों को पंजीकृत किया जाना चाहिए और admin_enqueue_scriptsहुक के माध्यम से और अन्य सभी लिपियों के माध्यम से गणना की जानी चाहिए , wp_enqueue_scriptsइसलिए मैंने अपनी सभी लिपियों को एक स्पष्ट और व्यवस्थित तरीके से पंजीकृत करने और संलग्न करने के लिए निम्नलिखित कार्य किए हैं।

मेरा प्रश्न है, क्या होगा अगर मुझे कुछ स्क्रिप्ट्स की जरूरत है (जैसे। jquery वेलिडेट प्लगइन) दोनों एडमिन और फ्रंट एंड में? इस मामले में लिपि को पंजीकृत करने और उसमें संलग्न करने के लिए अनुशंसित विधि क्या है? एक $ संभाल के साथ दो बार इसे पंजीकृत करें या wp_enqueue_scriptsकेवल इसके माध्यम से पंजीकृत करें और यदि ऐसा है, तो क्या आवश्यकता होने पर इसे जोखिम नहीं कहा जा सकता है? (मेरा मतलब है, admin_enqueue_scriptsउन लिपियों को पहले से ही उपलब्ध नहीं कराने के लिए और क्यों मौजूद होगा ?

मैं वास्तव में सराहना करूंगा कि कोई व्यक्ति मुझे पूरी तरह से wp में स्क्रिप्टिंग की बारीकियों को समझने के लिए इसे समझाए। धन्यवाद

मेरा कोड:

// REGISTER ALL NON-ADMIN SCRIPTS
add_action( 'wp_enqueue_scripts', 'register_all_non_admin_scripts' );
function register_all_non_admin_scripts() {

wp_register_script( ... );
wp_register_script( ... );

}

// ENQUEUE NON-ADMIN SCRIPTS CONDITIONALLY
add_action( 'wp_enqueue_scripts', 'enqueue_scripts_where_required' );
function enqueue_scripts_where_required() {

// scripts to be loaded at all times
wp_enqueue_script( '' );

// scripts to be loaded conditionaly
if( is_page( '' ) ) {
    wp_enqueue_style( '' );
}
}

// REGISTER ALL ADMIN SCRIPTS
add_action( 'admin_enqueue_scripts', 'register_all_admin_scripts' );
function register_all_admin_scripts(){
wp_register_script( ... );
wp_register_script( ... );
}

// ENQUEUE ADMIN SCRIPTS
add_action( 'admin_enqueue_scripts', 'enqueue_admin_contact_cpt_js' );
function enqueue_admin_contact_cpt_js(){

global $post_type;

// scripts to be loaded at all times
wp_enqueue_script( '' );

// scripts to be loaded conditionaly by post type
if( 'contact' == $post_type ){
    wp_enqueue_script( '' );
    ...
}
}

जवाबों:


10

उदाहरण के लिए, आप पहले स्क्रिप्ट को पंजीकृत कर सकते हैं wp_loaded:

add_action( 'wp_loaded', 'register_all_scripts' );

function register_all_scripts() 
{
    wp_register_script(...);
}

और फिर आप enqueue स्क्रिप्ट जब भी आप उन्हें जरूरत है:

add_action( 'wp_enqueue_scripts', 'enqueue_front_scripts' );
add_action( 'admin_enqueue_scripts', 'enqueue_back_scripts' );

अन्य स्क्रिप्ट के साथ टकराव से बचने के लिए समान हैंडल और नामों का उपयोग करें।


मुझे लगता है कि स्क्रिप्ट के लिए समस्या को हल किया जाएगा जो कि व्यवस्थापक और फ्रंट एंड हां दोनों में उपयोग किया जाएगा; मैं इन मामलों के लिए एक और फ़ंक्शन जोड़ूंगा। धन्यवाद @toscho
Ronnieinspain
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.