Cara mengganti tindakan plugin yang ada dengan tindakan baru

18

Saya menggunakan plugin. Ini memiliki tindakan seperti ini.

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

Saya sedang menulis modul untuk plugin ini. Jadi saya perlu mengganti fungsi aksi lama dengan fungsi aksi baru saya.

Ini adalah fungsi baru saya.

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

Saya ingin mengganti fungsi old_action dengan fungsi new_action saya menggunakan kait. Ada yang bisa bantu saya?

Terima kasih

Giri
sumber

Jawaban:

33

Anda dapat menggunakan remove_action()fungsi ini, seperti ini:

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

Penting untuk dicatat bahwa jika old_action ditambahkan dengan parameter prioritas, Anda harus menambahkannya ke remove_actionpanggilan, jika tidak maka akan gagal untuk menghapusnya. Ada implikasi lain jika old_action ditambahkan dalam kelas. Lihat di sini untuk info lebih lanjut.

Tomas Buteler
sumber
3
+1 dengan klarifikasi bahwa tindakan hapus harus dipanggil setelah fungsi yang dihapus ditambahkan.
Stephen Harris
2
'after_setup_theme' sepertinya tempat yang bagus untuk remove_action. Lihat: wordpress.stackexchange.com/questions/170663/…
DigitalDesignDj