remove_action บน after_setup_theme ไม่ทำงานจากธีมลูก


17

ฉันกำลังพยายามลบการดำเนินการของชุดรูปแบบสำหรับชุดรูปแบบที่หรูหราโดยใช้ชุดรูปแบบเด็ก .. ซึ่งจะทำงานเมื่อฉันลบการดำเนินการหลังจากรหัส add_action ที่ใดก็ได้ในหน้าที่หลักฟังก์ชั่น อย่างไรก็ตามมันไม่ทำงานเมื่อฉันเพิ่มจากฟังก์ชั่นธีมลูก

remove_action ('after_setup_theme', 'et_pb_setup_theme' , 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เพื่อตรวจสอบการกระทำที่ไม่มีอยู่จริงในฟังก์ชั่นของเด็ก. 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

ไฟล์ functions.php ของชุดรูปแบบลูกโหลดก่อนหน้าที่ชุดรูปแบบหลัก parent.php ดังนั้นเมื่อคุณเรียกใช้remove_actionในชุดรูปแบบลูกการกระทำที่คุณพยายามลบไม่มีอยู่เพราะไม่มีการเพิ่มในภายหลัง


1
.. แต่ไม่มีลำดับความสำคัญ 10 และ hook after_setup_theme ควรดูแลสิ่งนั้นใช่ไหม ฉันจะทำสิ่งนี้ได้อย่างไร
สูบบุหรี่นายอำเภอ

ไม่ได้อาร์กิวเมนต์ลำดับความสำคัญไม่ได้มีไว้สำหรับสิ่งนั้น เพียงคุณไม่สามารถลบสิ่งที่ไม่มีอยู่ได้ กล่าวอีกนัยหนึ่ง (นำมาจากcodex ) คุณไม่สามารถลบการกระทำก่อนที่จะถูกเพิ่มได้
cybmeta

1
ดังนั้นเป็นไปได้อย่างไรที่จะลบการดำเนินการที่กำหนดโดยธีมหลัก
2560

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);
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.