मैं मूल विषय की CSS फ़ाइल को कैसे समाप्त कर सकता हूँ?


33

मेरे मूल विषय (स्टार्क) एक सीएसएस फ़ाइल को जोड़ता है जिसे मैं हटाने की कोशिश कर रहा हूं (मैं इसके बजाय @import का उपयोग करना चाहता हूं ताकि मैं शैलियों को अधिक आसानी से ओवरराइड कर सकूं)। स्टार्क के अपने कार्य निम्नलिखित हैं।

add_action( 'wp_enqueue_scripts', 'script_enqueuer' );

function script_enqueuer() {
    wp_register_script( 'site', get_template_directory_uri().'/js/site.js', array( 'jquery' ) );
    wp_enqueue_script( 'site' );

    wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
    wp_enqueue_style( 'screen' );
}

मैंने बच्चे के कार्यों में निम्नलिखित की कोशिश की है। एफपीपी, लेकिन लिंक और स्क्रिप्ट टैग अभी भी सिर अनुभाग में दिखाई देते हैं।

add_action('init', 'removeScripts');
function removeScripts() {
    wp_dequeue_style('screen');
    wp_deregister_script('site');
}

मैंने यह देखने के लिए डबल जाँच की है कि क्या वे मूल शीर्षक में हार्ड कोडित हैं और वे नहीं हैं।

जवाबों:


39

मैं इसके बजाय @import का उपयोग करना चाहता हूं ताकि मैं शैलियों को अधिक आसानी से ओवरराइड कर सकूं

सीधे शब्दों में। मत करो। करना। उस।

आप बस एक ही हुक में कूदते हैं और फिर शैलियों / लिपियों को हटाते हैं और अपने कस्टम में फेंकते हैं।

function PREFIX_remove_scripts() {
    wp_dequeue_style( 'screen' );
    wp_deregister_style( 'screen' );

    wp_dequeue_script( 'site' );
    wp_deregister_script( 'site' );

    // Now register your styles and scripts here
}
add_action( 'wp_enqueue_scripts', 'PREFIX_remove_scripts', 20 );

स्क्रिप्ट्स को समाप्त करने और डीरेगिस्टर करने का कारण सरल है:

ध्यान दें कि यदि आप उन्हें हटाने के बाद उन दोनों हैंडल ( 'screen'या 'site') का उपयोग करने में सक्षम होना चाहते हैं, तो आपको उन्हें भी डीरजिस्टर करना होगा। उदाहरण के लिए: wp_deregister_style( 'screen' );और wp_deregister_script( 'site' );- peterjmag


1
यह शायद सरल है, लेकिन आधिकारिक WP डॉक में कोडेक्स . wordpress.org/Child_Themes की कमी है । वे बाल विषयों के लिए
छल और कपट के

-1

यहां बताया गया है कि आप या तो मूल विषय की स्टाइलशीट को हटा देंगे और उसे चाइल्ड थीम की स्टाइलशीट से बदल देंगे या फिर केवल अभिभावक की स्टाइलशीट को लोड होने से हटा देंगे।

स्टारर थीम के फ़ंक्शन। एफपी:

add_action( 'wp_enqueue_scripts', 'script_enqueuer' );

function script_enqueuer() {
    //...
    wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
    wp_enqueue_style( 'screen' );
}

उस हैंडल को याद रखें जिसे वे शैली कहते हैं, 'स्क्रीन'

बच्चे के विषय की स्टाइलशीट के साथ मूल विषय की जगह

स्टारर-चाइल्ड थीम के फंक्शन्स। एफपी:

function custom_starkers_styles() {

    //Remove desired parent styles
    wp_dequeue_style( 'screen');

    //Replace with custom child styles
    wp_register_style( 'screen-child',​ trailingslashit( get_template_directory_uri() ). 'screen.css' );
    wp_enqueue_style( 'screen-child​'​);
}

add_action( 'wp_enqueue_scripts','custom_starkers_styles', 20 );

पैरेंट थीम की स्टाइलशीट निकालें

स्टारर-चाइल्ड थीम के फंक्शन्स। एफपी:

function remove_starkers_styles() {

    //Remove desired parent styles
    wp_dequeue_style( 'screen');

}

add_action( 'wp_enqueue_scripts','remove_starkers_styles', 20 );

हम बच्चे के विषय को जोड़ते हैं () ( 20 की प्राथमिकता 10 है) उच्च प्राथमिकता, बाद में यह चलेगा। 20> 10 इसलिए पेरेंट थीम के एग्जिक्यूट होने के बाद चाइल्ड थीम का एक्शन हमेशा चलेगा।

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