बाल विषय में लिपियों और शैलियों को कैसे ठीक से समझा जाए?


11

मैंने अपने एक प्रोजेक्ट में पैरेंट थीम और एक चाइल्ड थीम बनाया। मैंने सीएसएस और जावा स्क्रिप्ट को अपने मूल विषय में नीचे की तरह शामिल किया है:

function project_necessary_scripts() {
    //Stylesheets
    wp_register_style( 'bootstrap-css', get_template_directory_uri() .'/css/bootstrap.min.css' );
    wp_register_style( 'bootstrap-map', get_template_directory_uri() .'/css/bootstrap.css.map' );
    wp_register_style( 'project-css', get_stylesheet_uri() );

    wp_enqueue_style( 'bootstrap-css' );
    wp_enqueue_style( 'bootstrap-map' );
    wp_enqueue_style( 'project-css' );

    //JavaScripts
    wp_register_script( 'modernizr-js', get_template_directory_uri() .'/js/modernizr-2.8.3.min.js', array(), '2.8.3' );
    wp_register_script( 'project-js', get_template_directory_uri() .'/js/project.min.js', array('jquery'), '20150401', true );

    wp_enqueue_script( 'modernizr-js' );
    wp_enqueue_script( 'project-js' );
}
add_action( 'wp_enqueue_scripts', 'project_necessary_scripts' );

अब, अपने बाल विषय में मैं कुछ स्टाइलशीट और javascripts को समाप्त करना चाहता हूं। इसलिए मैंने निम्नलिखित कोड का उपयोग किया:

function project_dequeue_unnecessary_scripts() {
    wp_dequeue_style( 'bootstrap-map' );
    wp_dequeue_script( 'modernizr-js' );
    wp_dequeue_script( 'project-js' );
}
add_action( 'wp_print_scripts', 'project_dequeue_unnecessary_scripts' );

लेकिन वास्तव में bootstrap.css.mapफ़ाइल अभी भी enqueuing है, लेकिन modernizr-js प्रोजेक्ट-js लोड नहीं हो रहा है, इसलिए यह आंशिक रूप से काम कर रहा है। मैं इसे कैसे हल कर सकता हूं?

मैंने कार्रवाई की प्राथमिकताएं भी देखीं:

add_action( 'wp_print_scripts', 'project_dequeue_unnecessary_scripts', 11 );

जवाबों:


24

आप समाधान के बहुत करीब हैं, क्योंकि आप सही रास्ते पर हैं। बस थोड़ा सा ट्वीक करने के लिए:

इस तरह के दो कार्रवाई हुक हैं:

  1. wp_print_scripts, तथा
  2. wp_print_styles

तो जिस तरह से आप यह कर सकते हैं, वह है: हुक उन्हें अलग तरह से:

//Dequeue Styles
function project_dequeue_unnecessary_styles() {
    wp_dequeue_style( 'bootstrap-map' );
        wp_deregister_style( 'bootstrap-map' );
}
add_action( 'wp_print_styles', 'project_dequeue_unnecessary_styles' );

//Dequeue JavaScripts
function project_dequeue_unnecessary_scripts() {
    wp_dequeue_script( 'modernizr-js' );
        wp_deregister_script( 'modernizr-js' );
    wp_dequeue_script( 'project-js' );
        wp_deregister_script( 'project-js' );
}
add_action( 'wp_print_scripts', 'project_dequeue_unnecessary_scripts' );

और सही तरीका यह है कि आप उन्हें धोखा देने के बगल में छोड़ दें। इसलिए पहले उन्हें धोखा दें, और फिर उसी के अनुसार उन्हें त्याग दें।


डॉक्स के अनुसार : वर्डप्रेस 3.3 के बाद से, wp_print_scripts का उपयोग शैलियों या स्क्रिप्ट को समझने के लिए नहीं किया जाना चाहिए। इसके बजाय wp_enqueue_scripts का उपयोग करें।
rok

@ user1264304 हम यहां चीजों को नहीं समझ रहे हैं, हम चीजों को खत्म कर रहे हैं।
मयीनुल इस्लाम

1
हाँ, लेकिन के अनुसार लिंक , एक का उपयोग करना चाहिएadd_filter( 'wp_enqueue_scripts', 'project_dequeue_unnecessary_scripts')
ROK
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.