Rumah > Tutorial CMS > WordTekan > Plugin WordPress mengemas kini cara yang betul

Plugin WordPress mengemas kini cara yang betul

Jennifer Aniston
Lepaskan: 2025-02-15 12:56:11
asal
925 orang telah melayarinya

penjelasan terperinci dan amalan terbaik mekanisme kemas kini pemalam WordPress

WordPress sendiri tidak menyediakan proses kemas kini plug-in asli, dan pemaju perlu melaksanakannya sendiri. Ini termasuk mengemas kini nombor versi dalam pangkalan data dan membuat pilihan baru jika perlu.

Nombor versi plugin WordPress harus disimpan di dua tempat: pemalar dalam fail utama plugin dan pilihan dalam pangkalan data. Ini membolehkan pengesanan sama ada pilihan pangkalan data telah dikemas kini sejak kemas kini plugin terakhir.

Apabila mengemas kini pilihan, pemaju harus berhati -hati untuk tidak menimpa pilihan pengguna. Jika pilihan tidak wujud dalam pangkalan data, ia harus dibuat;

Untuk pilihan yang disimpan sebagai tatasusunan, pemaju boleh menggunakan fungsi PHP array_merge() untuk memastikan semua kunci ditakrifkan dan tiada pilihan yang tidak wujud diperkenalkan. Ini juga memastikan bahawa jika pengguna mengubah pilihan lama, nilainya akan dikekalkan.

Beberapa minggu yang lalu, saya menerima e -mel mengenai WP Photo Sphere (plugin WordPress yang saya usahakan). Masalahnya besar: mengemas kini plugin menyebabkan beberapa pemasang jatuh. Selepas beberapa siasatan, saya mendapati bahawa masalah berpunca daripada pilihan yang digunakan oleh plugin: Pemasang ini tidak memberikan nilai lalai untuk pilihan baru yang saya tambah.

WordPress Plugin Updates the Right Way Nilai -nilai ini sangat penting, jadi saya memerlukan cara untuk mencipta nilai lalai. Walau bagaimanapun, bertentangan dengan apa yang saya fikir, WordPress tidak menyediakan sebarang kaedah asli untuk mengendalikan proses kemas kini.

inilah sebabnya saya mahu menulis tutorial ini. Pertama, kita akan memahami dengan tepat mengapa kita memerlukan proses kemas kini dan mengapa WordPress tidak menyediakan proses sedemikian. Saya kemudian akan menunjukkan kepada anda cara membuat proses anda sendiri untuk mengemas kini pilihan anda.

kepentingan proses kemas kini pemalam

Biasanya, menukar fail tidak mencukupi untuk mengemas kini sesuatu dengan betul. Sebagai contoh, apabila anda mengemas kini fail WordPress anda secara manual ke versi baru, platform akan meminta anda mengklik butang untuk mengemas kini pangkalan data.

Katakan anda menggunakan pilihan dalam plugin. Apabila plugin berkembang, anda memerlukan lebih banyak pilihan dalam versi baru. Sangat mudah untuk membuat pilihan baru apabila pengguna mula -mula mengaktifkan plugin, anda hanya perlu menggunakan cangkuk pengaktifan.

Contohnya, mari kita lihat kod berikut:

function my_awesome_plugin_activation() {
    update_option('my_awesome_plugin_option', 'default value');
}
register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Jika anda tidak biasa dengan menggunakan

bukan update_option(), jangan risau, kami akan menerangkannya kemudian apabila membincangkan cara menangani proses kemas kini. add_option()

Jika anda mahukan pilihan baru, atau jika anda mengemas kini nilai pilihan sedia ada dalam versi baru, anda perlu mengemas kini pangkalan data pengguna yang sudah menggunakan plugin anda, jadi kami memerlukan fungsi yang dipanggil segera selepas kemas kini .

Mengaktifkan cangkuk boleh sedikit mengelirukan. Lagipun, apabila anda mengemas kini plugin secara automatik, ia akan dinyahaktifkan dan diaktifkan semula, jadi kami boleh mengharapkan cangkuk ini dipanggil. Tetapi itu tidak berlaku.

Lebih tepat lagi, dulu, tetapi WordPress menghentikan tingkah laku ini dalam versi 3.1. Pasukan pembangunan menjelaskan pilihan ini dan anda boleh membaca penjelasan penuh mengenai blog Core Make WordPress. Sebab utama ialah ia tidak dipanggil setiap kali, kerana jika pengguna secara manual mengemas kini plugin, cangkuk pengaktifan boleh dilangkau.

Oleh itu, WordPress tidak menyediakan kaedah lalai untuk memanggil fungsi secara automatik selepas kemas kini pemalam. Itulah sebabnya anda perlu membina proses anda sendiri.

bagaimana menangani proses kemas kini

Di bahagian tutorial ini, saya akan menunjukkan kepada anda bagaimana untuk memanggil fungsi yang diberikan secara automatik selepas plugin dikemas kini. Kami akan melihat di bahagian seterusnya bagaimana untuk mengendalikan kemas kini pilihan sedia ada dan penciptaan pilihan baru (dalam fungsi yang sama).

prinsip kaedah ini

Prinsip global kaedah kami ialah kami menyimpan nombor versi plugin di dua tempat: pemalar dalam fail utama plugin dan pilihan dalam pangkalan data.

Nombor dalam pangkalan data akan menyimpan versi pengguna yang sedang dipasang pada masa ini, manakala nombor dalam pemalar adalah versi semasa. Jika kedua -dua nombor ini berbeza, pilihan pangkalan data belum dikemas kini sejak kemas kini plugin terakhir, jadi kita perlu melakukan ini.

Dalam kes ini, kami akan memanggil fungsi yang mengemas kini semua pilihan yang diperlukan. Fungsi ini juga mengemas kini nombor versi yang disimpan dalam pangkalan data: supaya kita tidak memanggil fungsi ini.

berterusan

Sekarang kita telah menutupi apa yang akan kita lakukan, sudah tiba masanya untuk menulis kod! Pertama, tambahkan definisi berterusan dalam fail utama plugin dan ambil nombor versi semasa anda sebagai nilai. Untuk mengelakkan sebarang masalah, kami menguji sama ada ia belum wujud.

function my_awesome_plugin_activation() {
    update_option('my_awesome_plugin_option', 'default value');
}
register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Biasanya, versi plugin menggunakan identiti digital, tetapi berasa bebas untuk menggunakannya jika anda menggunakan sistem yang berbeza. Satu -satunya kekangan di sini adalah untuk menyediakan pengecam unik untuk setiap versi atau sekurang -kurangnya untuk setiap versi yang perlu menukar pangkalan data (pilihan baru, lalai baru, dll.).

Periksa fungsi

sekarang kita perlu menulis fungsi untuk memeriksa sama ada pangkalan data perlu dikemas kini. Fungsi ini membandingkan pemalar yang ditakrifkan sebelumnya dengan nilai -nilai yang disimpan dalam pangkalan data. Untuk melakukan ini, kami akan memastikan fungsi kami dipanggil di mana sahaja, menggunakan tindakan

, yang akan dicetuskan sebaik sahaja semua plugin dimuatkan. plugins_loaded

if (!defined('MY_AWESOME_PLUGIN_VERSION'))
    define('MY_AWESOME_PLUGIN_VERSION', '3.4.1');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Fungsi ini akan mudah. Kami mengambil nombor versi yang disimpan dalam pangkalan data, sama seperti pilihan lain, dan bandingkan dengan pemalar. Jika nilai -nilai ini berbeza, kami akan memanggil fungsi

. my_awesome_plugin_activation()

function my_awesome_plugin_check_version() {
}

add_action('plugins_loaded', 'my_awesome_plugin_check_version');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Sekarang, kita perlu menjelaskan beberapa isu. Pertama, bagaimana jika pilihan tidak wujud dalam pangkalan data lagi? Jika pilihan tidak wujud,

akan kembali palsu, yang berbeza dari nombor versi anda, jadi fungsi akan dipanggil. get_option()

Jadi mengapa kita memanggil fungsi pengaktifan? Untuk menjadi jelas, kita boleh membuat fungsi baru yang digunakan secara khusus untuk proses kemas kini. Walau bagaimanapun, jika anda melakukan ini, anda akan melihat bahawa fungsi baru ini akan sangat serupa dengan pengaktifan, kerana pilihan mengemas kini boleh sama seperti membuat pilihan.

Kemas kini nombor versi dalam pangkalan data

Anda boleh melakukan apa sahaja yang anda mahukan dalam fungsi pengaktifan yang dipanggil di atas. Walau bagaimanapun, satu perkara yang diperlukan, dan itu adalah untuk mengemas kini nombor versi yang disimpan dalam pangkalan data. Dengan cara ini, kami tidak memanggil fungsi kami setiap kali halaman dimuatkan.

function my_awesome_plugin_activation() {
    update_option('my_awesome_plugin_option', 'default value');
}
register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Sila ambil perhatian silap mata: Kami tidak menggunakan add_option(), hanya gunakan update_option(). Malah, jika pilihan belum wujud, update_option() akan menciptanya. Jika ia wujud, ia akan mengemas kini nilainya kepada nilai yang ditunjukkan. Inilah sebabnya kami boleh menggunakan fungsi pengaktifan kami sebagai fungsi kemas kini tanpa sebarang masalah.

Pilihan kemas kini

Jangan menimpa pilihan pengguna!

Mengemas kini mana -mana pilihan adalah cara yang sama kami mengemas kini nombor versi: anda boleh menghubungi update_option() dan ia dilakukan, walaupun ini adalah kali pertama WordPress telah melihat pilihan.

Walau bagaimanapun, kami tidak selalu mahu mengemas kini nilai pilihan. Malah, jika anda menggunakan pilihan, biasanya membuat pengguna anda memperibadikan tetapan. Dengan menggunakan

, anda akan menulis ganti pilihan pengguna setiap kali anda mengemas kini plugin, yang bukan apa yang kami mahu lakukan. update_option()

di atas, kita melihat bahawa jika pilihan tidak wujud,

akan kembali palsu. Kami akan menggunakan tingkah laku ini untuk menguji jika pilihan yang kami ingin kemas kini wujud dalam pangkalan data. Sekiranya ini berlaku, kami tidak berbuat apa -apa. Jika tidak, kami membuat pilihan ini. get_option()

if (!defined('MY_AWESOME_PLUGIN_VERSION'))
    define('MY_AWESOME_PLUGIN_VERSION', '3.4.1');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Sila ambil perhatian bahawa ujian ini diperlukan untuk pilihan yang kami tidak mahu menimpa. Dalam beberapa kes, kita mungkin mahu melakukan ini, memandangkan nombor versi, kita pasti tidak mahu menyimpan nilai lama!

Kes Khas -Array

Anda harus tahu bahawa WordPress membolehkan array menyimpan nilai pilihan kami, dan mencipta mereka tidak lebih sukar daripada membuat pilihan lain. Contohnya:

Jika anda memerlukan pelbagai tetapan, menggunakan array adalah idea yang baik. Dengan cara ini, anda tidak menggunakan banyak penyertaan dalam pangkalan data, dan anda mengehadkan peluang plugin lain menggunakan pilihan dengan nama yang sama. Walau bagaimanapun, ini boleh menyebabkan masalah apabila kita mempertimbangkan proses kemas kini.
function my_awesome_plugin_check_version() {
}

add_action('plugins_loaded', 'my_awesome_plugin_check_version');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Untuk memahami sebab -sebabnya, katakan anda mempunyai array sebagai pilihan dengan beberapa kunci. Pengguna anda pasti akan memperibadikan nilai -nilai ini. Menggunakan ujian yang kami lakukan di atas, kami hanya boleh membuat pilihan jika ia tidak wujud dan pilihan ini tidak ditimpa. Ini kelihatan mudah, tetapi bagaimana jika anda ingin membuat kunci baru dalam array?

Jika pilihan wujud dalam pangkalan data, kod sebelumnya tidak akan menciptanya, jadi kunci baru anda tidak akan wujud. Walau bagaimanapun, jika kita memadam keadaan, array akan mengambil nilai lalai setiap kali kemas kini baru. Tidak ideal. Nasib baik, ada penyelesaian!

Pertama, kita menentukan array yang mengandungi nilai lalai pilihan (jika kunci baru wujud).

Kemudian, kami mengambil array yang kini disimpan dalam pangkalan data.
if (MY_AWESOME_PLUGIN_VERSION !== get_option('my_awesome_plugin_version'))
    my_awesome_plugin_activation();
Salin selepas log masuk
Salin selepas log masuk
function my_awesome_plugin_activation() {
    update_option('my_awesome_plugin_option', 'default value');
}
register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Sekarang kita boleh menggunakan fungsi PHP array_merge() untuk mengambil array lalai kami sebagai parameter pertama dan array pengguna sebagai parameter kedua. Dengan cara ini, kami akan mendapat array yang mengandungi semua kunci yang ditakrifkan dalam array $default dan kami tidak akan mempunyai sebarang pilihan yang tidak wujud. Jika pengguna mengubah salah satu pilihan lama, nilainya dikekalkan. Dengan array_merge(), kami sentiasa menyimpan definisi terkini.

if (!defined('MY_AWESOME_PLUGIN_VERSION'))
    define('MY_AWESOME_PLUGIN_VERSION', '3.4.1');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Akhirnya, kami menggunakan update_option() untuk menyimpan hasil dalam pangkalan data.

function my_awesome_plugin_check_version() {
}

add_action('plugins_loaded', 'my_awesome_plugin_check_version');
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kami hampir berakhir, tetapi jika fungsi itu dilaksanakan untuk kali pertama, kita kini perlu menetapkan ralat yang mungkin anda hadapi.

Fungsi ini dipanggil apabila plugin diaktifkan, iaitu apa yang kita mahu. Walau bagaimanapun, dalam kes ini pilihan belum wujud, jadi get_option() pulih palsu. Masalahnya ialah menggunakan palsu sebagai parameter array_merge() akan menyebabkan kesilapan.

Apa yang kita mahukan adalah mudah, jika pilihan tidak wujud, kita mahu $option menjadi array kosong. Untuk melakukan ini, kita boleh menggunakan parameter kedua get_option() yang menunjukkan nilai lalai yang akan diperoleh (agar tidak kembali palsu).

if (MY_AWESOME_PLUGIN_VERSION !== get_option('my_awesome_plugin_version'))
    my_awesome_plugin_activation();
Salin selepas log masuk
Salin selepas log masuk

Kesimpulan

Sebaik sahaja anda membacanya dengan teliti, proses mengendalikan kemas kini plugin WordPress tidak rumit. Walau bagaimanapun, ini penting jika anda menggunakan pilihan, kerana terdapat beberapa masalah tanpa pilihan permulaan.

Pada masa ini, WordPress tidak menyediakan cara asli untuk mengendalikan kemas kini pemalam. Sebenarnya, memandangkan isu -isu yang kami disenaraikan di atas, jika kita melihat bahawa fungsi jenis ini diperkenalkan satu hari, kita harus melaksanakannya dengan cara yang serupa dengan tutorial ini.

Anda boleh mendapatkan kod untuk plugin sampel saya di sini. Fikirkan kod ini sebagai rangka kerja untuk melaksanakan proses kemas kini plugin WordPress anda sendiri. Jika anda mempunyai maklum balas, sila beritahu saya dalam komen di bawah.

FAQ Kemas Kini Plugin WordPress (FAQ)

Apakah pentingnya mengemas kini plugin WordPress secara kerap?

Kemas kini tetap ke plugin WordPress adalah penting untuk sebab -sebab berikut: Pertama, kemas kini sering termasuk ciri -ciri dan ciri -ciri baru yang dapat meningkatkan prestasi laman web. Kedua, kemas kini biasanya membetulkan pepijat dan kelemahan yang boleh membahayakan keselamatan laman web. Akhirnya, kemas kini memastikan keserasian dengan versi terkini WordPress, memastikan laman web anda berjalan lancar dan cekap.

Bagaimana untuk memastikan kemas kini yang selamat ke plugin WordPress saya?

Untuk memastikan kemas kini keselamatan, pastikan anda membuat sandaran laman web anda sebelum memulakan proses kemas kini. Dengan cara ini, jika terdapat sebarang masalah semasa proses kemas kini, anda boleh memulihkan laman web anda dengan mudah ke keadaan terdahulu. Di samping itu, adalah disyorkan untuk menguji kemas kini di tapak pementasan sebelum memohon ke tapak langsung anda.

Apa yang harus saya lakukan jika kemas kini plugin gagal?

Jika kemas kini plugin gagal, langkah pertama adalah untuk memulihkan laman web anda dari sandaran. Kemudian, cuba tentukan punca kegagalan. Ini mungkin disebabkan konflik dengan plugin atau tema lain, atau isu keserasian dengan versi WordPress anda. Sebaik sahaja anda telah mengenal pasti masalah ini, anda boleh membetulkannya sendiri, atau hubungi pemaju plugin untuk mendapatkan bantuan.

Bagaimana untuk melaksanakan proses mengemas kini plugin WordPress secara automatik?

WordPress mempunyai ciri-ciri terbina dalam yang membolehkan anda mengemas kini plugin secara automatik. Anda boleh mengaktifkan ciri ini dengan pergi ke bahagian pemalam di papan pemuka WordPress, memilih pemalam yang anda ingin kemas kini secara automatik, dan mengklik Dayakan Kemas Kini Automatik.

Jika kemas kini plugin menyebabkan masalah dengan laman web saya, bolehkah saya melancarkan kemas kini plugin?

Ya, jika kemas kini plugin menyebabkan masalah dengan laman web anda, anda boleh melancarkan kemas kini plugin. Terdapat beberapa plugin yang tersedia, seperti Rollback WP, yang membolehkan anda mudah memulihkan ke versi sebelumnya plugin.

Bagaimana untuk mengemas kini pemalam WordPress Advanced?

Plug-in WordPress Advanced dikemas kini sama dengan pemalam percuma. Walau bagaimanapun, anda perlu mempunyai kunci lesen yang sah untuk mengakses kemas kini. Selepas memasuki kunci lesen, anda boleh mengemas kini pemalam dari papan pemuka WordPress.

Apakah cara terbaik untuk menguruskan kemas kini ke laman web WordPress?

Jika anda menguruskan pelbagai laman web WordPress, anda mungkin perlu menghabiskan banyak masa mengemas kini plugin untuk setiap tapak. Cara yang lebih berkesan ialah menggunakan alat pengurusan WordPress seperti ManageWP atau MainWP, yang membolehkan anda menguruskan kemas kini untuk semua laman web anda dari papan pemuka tunggal.

Bagaimana untuk melumpuhkan kemas kini automatik untuk plugin WordPress tertentu?

Jika anda ingin melumpuhkan kemas kini automatik untuk plugin tertentu, anda boleh menggunakan plugin seperti Pengurus Kemas Kini Easy. Plugin ini membolehkan anda mengawal kemas kini automatik setiap plugin di laman web anda.

Bagaimana untuk memeriksa keserasian kemas kini plugin dengan versi WordPress saya?

Sebelum mengemas kini plugin, anda boleh menyemak keserasiannya dengan versi WordPress anda dengan melawat halaman plugin pada direktori plugin WordPress. Di sini anda akan mendapat maklumat mengenai keserasian pemalam dengan versi WordPress yang berlainan.

Apa yang harus saya lakukan jika kemas kini plugin memecahkan laman web saya?

Jika kemas kini plugin memecahkan laman web anda, langkah pertama adalah untuk memulihkan laman web anda dari sandaran. Kemudian, nyahaktifkan plugin yang menyebabkan masalah. Jika anda tidak dapat mengakses papan pemuka WordPress anda, anda boleh menyahaktifkan pemalam melalui FTP dengan menamakan semula folder plug-in dalam direktori WP-Content/Plugins. Selepas anda melumpuhkan plugin, anda boleh menyelesaikan masalah atau hubungi pemaju plugin untuk mendapatkan bantuan.

Atas ialah kandungan terperinci Plugin WordPress mengemas kini cara yang betul. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan