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.
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');
bukan update_option()
, jangan risau, kami akan menerangkannya kemudian apabila membincangkan cara menangani proses kemas kini. add_option()
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
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
function my_awesome_plugin_activation() { update_option('my_awesome_plugin_option', 'default value'); } register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
Periksa fungsi
, yang akan dicetuskan sebaik sahaja semua plugin dimuatkan. plugins_loaded
if (!defined('MY_AWESOME_PLUGIN_VERSION')) define('MY_AWESOME_PLUGIN_VERSION', '3.4.1');
. my_awesome_plugin_activation()
function my_awesome_plugin_check_version() { } add_action('plugins_loaded', 'my_awesome_plugin_check_version');
akan kembali palsu, yang berbeza dari nombor versi anda, jadi fungsi akan dipanggil. get_option()
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');
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
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.
, anda akan menulis ganti pilihan pengguna setiap kali anda mengemas kini plugin, yang bukan apa yang kami mahu lakukan. update_option()
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');
Kes Khas -Array
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');
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();
function my_awesome_plugin_activation() { update_option('my_awesome_plugin_option', 'default value'); } register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
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');
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');
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();
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)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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!