Cách ghi đè hành động plugin hiện có bằng hành động mới


18

Tôi đang sử dụng một plugin. Nó có một hành động như thế này.

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

Tôi đang viết một mô-đun cho plugin này. Vì vậy, tôi cần ghi đè chức năng hành động cũ đó bằng chức năng hành động mới của mình.

Đây là chức năng mới của tôi.

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

Tôi muốn thay thế hàm old_action đó bằng hàm new_action của mình bằng hook. Ai giúp tôi với?

Cảm ơn

Câu trả lời:


33

Bạn có thể sử dụng remove_action()chức năng, như thế này:

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

Điều quan trọng cần lưu ý là nếu old_action được thêm một tham số ưu tiên, bạn phải thêm nó vào remove_actioncuộc gọi, nếu không sẽ không thể xóa nó. Có những hàm ý khác nếu old_action được thêm vào trong một lớp. Xem ở đây để biết thêm.


3
+1 với việc làm rõ rằng hành động gỡ bỏ phải được gọi sau khi chức năng loại bỏ nó được thêm vào.
Stephen Harris

2
'after_setup_theme' có vẻ như là một nơi tốt để remove_action. Xem: wordpress.stackexchange.com/questions/170663/ từ
DigitalDesignDj
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.