วิธีการแทนที่การกระทำของปลั๊กอินที่มีอยู่ด้วยการกระทำใหม่


18

ฉันใช้ปลั๊กอิน มันมีแอ็คชั่นแบบนี้

add_action('publish_post', 'old_action');
function old_action($pid) {
    "code goes here"
    }
}

ฉันกำลังเขียนโมดูลสำหรับปลั๊กอินนี้ ดังนั้นฉันต้องแทนที่ฟังก์ชั่นเก่า ๆ ด้วยฟังก์ชั่นแอคชั่นใหม่ของฉัน

นี่คือฟังก์ชั่นใหม่ของฉัน

function new_action($pid) {
      "code goes here"
        }
    }

ฉันต้องการแทนที่ฟังก์ชัน old_action ด้วยฟังก์ชัน new_action โดยใช้ hooks มีใครช่วยฉันบ้าง

ขอบคุณ

คำตอบ:


33

คุณสามารถใช้remove_action()ฟังก์ชั่นเช่นนี้:

remove_action('publish_post', 'old_action');
add_action('publish_post', 'new_action');

เป็นสิ่งสำคัญที่จะต้องทราบว่าหากเพิ่ม old_action ด้วยพารามิเตอร์ลำดับความสำคัญคุณต้องเพิ่มเข้าไปในการremove_actionโทรมิฉะนั้นจะไม่สามารถลบออกได้ มีความหมายอื่น ๆ ถ้า old_action ถูกเพิ่มเข้าไปในชั้นเรียน ดูที่นี่สำหรับข้อมูลเพิ่มเติม


3
+1 ที่มีคำชี้แจงว่าการดำเนินการลบจะต้องถูกเรียกหลังจากฟังก์ชั่นที่ลบอยู่ถูกเพิ่มเข้ามา
Stephen Harris

2
'after_setup_theme' ดูเหมือนจะเป็นสถานที่ที่ดีสำหรับ remove_action ดู: wordpress.stackexchange.com/questions/170663/…
DigitalDesignDj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.