remove_action on_setup_theme चाइल्ड थीम से काम नहीं कर रहा है


17

मैं एक चाइल्ड थीम का उपयोग करके एक सुरुचिपूर्ण-थीम थीम के लिए एक थीम एक्शन को हटाने की कोशिश कर रहा हूं .. यह तब काम करता है जब मैं मूल विषय फ़ंक्शन में कहीं भी add_action कोड के बाद कार्रवाई हटाता हूं। हालाँकि, यह काम नहीं करता है जब मैं इसे बाल थीम फ़ंक्शन से जोड़ता हूं। एफपी।

remove_action ('after_setup_theme', 'et_pb_setup_theme' , 10);

ऐड एक्शन के समान ही निकालें एक्शन में 10 प्राथमिकताएँ हैं। यह काम नहीं करना चाहिए?

add_action( 'after_setup_theme', 'et_pb_setup_theme' ); //parent theme add_action

जवाबों:


25

जैसा कि @cybmeta ने पहले ही बताया, आप अपने हटाने के साथ बहुत जल्दी हैं। इसलिए आपको वास्तविक निष्कासन को स्थगित करना होगा, उदाहरण के लिए:

add_action( 'after_setup_theme', 'wpdev_170663_remove_parent_theme_stuff', 0 );

function wpdev_170663_remove_parent_theme_stuff() {

    remove_action( 'after_setup_theme', 'et_pb_setup_theme' );
}

काम किया! मैं कुछ इसी तरह की कोशिश कर रहा हूं, लेकिन मेरी बुरी! जब से मैं शर्त का उपयोग कर दिया has_action एक जांच करने के लिए अभी भी न के बराबर बच्चे functions.php में कार्रवाई, इससे पहले कि remove_action यह काम नहीं कर रहा था !! आपका बहुत बहुत धन्यवाद! function etn(){ if(has_action('after_setup_theme', 'et_pb_setup_theme')){ remove_action ('after_setup_theme', 'et_pb_setup_theme' ); } } add_action ('after_setup_theme', 'etn', 9);
— शेरिफ

3

चाइल्ड थीम की फंक्शन्स.php फाइल पेरेंट थीम फंक्शन्स से पहले ही लोड की जाती है। इसलिए, जब आप remove_actionचाइल्ड थीम में रन करते हैं, तो आप जिस एक्शन को हटाने की कोशिश कर रहे हैं, वह मौजूद नहीं है, लेकिन बाद में जोड़ा जाता है।


1
..लेकिन प्राथमिकता 10 नहीं है और हुक_सेटअप_थीम का ध्यान रखना चाहिए? वैसे भी मुझे यह कैसे करना चाहिए?
— शेरिफ

नहीं, प्राथमिकता का तर्क उसके लिए नहीं है। बस आप कुछ ऐसा नहीं निकाल सकते जो मौजूद नहीं है। दूसरे शब्दों में, ( कोडेक्स से लिया गया ) आप इसे जोड़ने से पहले सफलतापूर्वक हटा नहीं सकते।
— साइबरमेट

1
तो, मूल विषय द्वारा सेट की गई कार्रवाई को निकालना कैसे संभव है?
— एरेंडिर

1

प्रयास करें (केवल नाम बदलें):

add_action( 'init' , 'myyy_remove' , 15 );
function myyy_remove() {
        remove_action('ACTION_NAME', 'my_function_name_Something'   ,11);
        remove_action('ACTION_NAME', 'my_function_name_Another'     ,11);
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.