Saya sudah meneliti ini beberapa kali, namun pencarian saya tidak mengungkapkan banyak kecuali kode kustom yang mungkin atau mungkin tidak praktik WordPress yang baik.
Sampai dengan rilis terbaru (WordPress 3.9 "Smith"), apakah kail telah ditambahkan ke proses pembaruan plugin? Saya bertanya karena ini merupakan kebutuhan yang sangat mendasar, namun saya tidak melihatnya ditambahkan ke codex (belum). Jika tidak, apa yang dipraktikkan pengembang praktik umum dan terbaik?
EDIT: Hanya untuk memperjelas, saya tidak berbicara tentang aktivasi, tetapi tentang memperbarui, dengan cara itu, jika ada perubahan dalam database atau jika tidak, itu dapat diatasi.
plugin-development
actions
upgrade
pengguna1915665
sumber
sumber
Jawaban:
Saya tidak berpikir tindakan telah ditambahkan. Anda dapat melihat detail versi untuk versi apa pun dan melihat tindakan baru apa pun yang ditambahkan.
Cara WordPress untuk menjalankan kode pada pembaruan plugin adalah apa yang dijelaskan di sini :
dan dengan contoh kode di sini :
sumber
register_activation_hook
, karena dalam kebanyakan kasus plugin akan dinonaktifkan / diaktifkan setiap kali Anda memperbaruinya dari admin. Menghubungkan keplugins_loaded
akan melakukan pemeriksaan Anda pada setiap halaman memuat (termasuk frontend). Ada pembicaraan tentang pengenalanregister_update_hook
, tetapi ditandai sebagai WONTFIX beberapa waktu lalu. Diskusi di sana bermanfaat.Dari diskusi di mana mereka memutuskan untuk tidak menambahkan pengait khusus / fungsi khusus untuk memutakhirkan , sepertinya "kebanyakan orang" (sejak 4 tahun lalu) menggunakannya
register_activation_hook
, karena ini disebut ketika plugin ditingkatkan melalui halaman admin; kebanyakan contoh yang saya lihat sejak itu mengikuti tren itu.Untuk sebagian besar penggunaan, saya sarankan untuk tidak menghubungkan
plugins_loaded
, karena akan dipanggil pada setiap halaman memuat. Pengecualian untuk hal ini disebutkan dalam diskusi: jalur peningkatan melalui FTP / SVN adalah 'kasus tepi', karena WP tidak akan memiliki mekanisme untuk mengetahui bahwa plugin diubah, dalam hal ini jawaban sebelumnya mungkin lebih relevan.Lihat https://gist.github.com/zaus/c08288c68b7f487193d1 untuk contoh menggunakan 'kerangka sederhana'
register_activation_hook
.sumber
register_activation_hook
tidak dijamin dijalankan pada pembaruan, lihat make.wordpress.org/core/2010/10/27/…plugins_loaded
- menjalankan setiap beban, dan dapat menjadi beban / lambat.Sejak WordPress 3.9 Anda dapat menggunakan
upgrader_process_complete
hook.Lihat referensi 1 , 2
Berikut ini contoh kode:
Setelah plugin diperbarui, itu akan mengatur tugas menjadi db menggunakan
set_transient()
fungsi. Tidak disarankan untuk menambahkan kode pembaruan saat meneleponupgrader_process_complete
hook.Selanjutnya, jika Anda menjelajah ke halaman admin lain,
plugins_loaded
hook akan berfungsi dan kode pembaruan akan berfungsi di sana.Harap dicatat bahwa plugin ini harus diaktifkan untuk membuat pengait pembaruan berfungsi.
Ini tidak berfungsi pada plugin aktif jadi, jika Anda ingin kode yang berfungsi mengaktifkan plugin Anda harus kode dalam
register_activation_hook()
fungsinya.sumber