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.