Rumah >Tutorial CMS >WordTekan >Pembangunan plugin WordPress

Pembangunan plugin WordPress

Jennifer Aniston
Jennifer Anistonasal
2025-02-21 10:48:10560semak imbas

Pembangunan plugin WordPress Jika anda pernah menggunakan WordPress untuk membina tapak dengan cepat, kemungkinan anda telah menggunakan salah satu daripada banyak plugin yang ditawarkan untuk memperluaskan fungsi perisian blog yang popular ini. Plugin adalah salah satu daripada banyak perkara yang menjadikan WordPress begitu menarik. Jika anda memerlukan galeri imej atau borang hubungan, mungkin ada plugin yang ada yang boleh anda muat turun dan gunakan. Ada kalanya, bagaimanapun, apabila anda tidak dapat mencari apa yang anda perlukan dari plugin sedia ada. Artikel ini akan menunjukkan kepada anda bagaimana untuk membuat plugin WordPress anda sendiri dengan berjalan anda melalui contoh untuk memaparkan beberapa teks menggunakan widget di bar sisi.

Takeaways Key

  • Plugin WordPress, yang memanjangkan fungsi perisian blog, boleh dibuat oleh pengguna apabila mereka tidak dapat mencari plugin sedia ada yang memenuhi keperluan mereka. Proses penciptaan melibatkan mewujudkan subdirektori baru dalam direktori WP-Content/Plugin dan memberikan deskriptor dalam komen fail PHP untuk mengenal pasti plugin.
  • WordPress menyediakan kelas WP_WIDGET yang boleh diperluaskan untuk membuat widget tersuai. Kelas WP_Widget mempunyai empat kaedah yang harus ditindih: __construct (), bentuk (), kemas kini (), dan widget (). Kaedah ini memulakan widget, memaparkan borang untuk penyesuaian, kemas kini sifat widget, dan memaparkan widget di blog, masing -masing.
  • Apabila membuat plugin WordPress, penting untuk mengikuti amalan terbaik seperti menggunakan konvensyen penamaan yang betul, memastikan keselamatan dengan mengesahkan dan membersihkan input pengguna, dan membuat plugin diterjemahkan untuk mencapai khalayak yang lebih luas. Keserasian dengan semua tema dapat dicapai dengan mematuhi piawaian pengekodan WordPress dan menguji plugin dengan tema yang berbeza.
  • Debugging Plugin WordPress melibatkan menggunakan sistem debugging terbina dalam atau IDE PHP dengan debugger. Memastikan keselamatan plugin melibatkan pengesahan dan sanitasi input pengguna, menggunakan nonces untuk mengesahkan sumber permintaan, menetapkan kebenaran fail yang betul, dan menggunakan fungsi API WordPress untuk manipulasi data. Kemas kini dan ujian yang kerap dapat membantu mengenal pasti kelemahan keselamatan yang berpotensi.

fail plugin utama

Plugin dikesan secara automatik dari direktori WP-Content/Plugins dalam direktori pemasangan WordPress anda. Apabila membuat plugin baru, anda harus membuat subdirektori baru di sana. Nama subdirektori boleh menjadi apa sahaja yang anda mahukan; Pilihan yang masuk akal adalah menyebutnya nama plugin anda. Cuba untuk mengelakkan nama generik seperti "TextWidget" atau "ShoppingCart" kerana ini mungkin telah digunakan dengan plugin lain dan akan menyebabkan masalah sekiranya anda ingin mengedarkannya kepada pengguna lain WordPress. Untuk contoh ini, buat subdirektori bernama phpmaster_exampleWidget. WordPress mengesan bahawa plugin boleh didapati dari deskriptor yang diletakkan dalam komen fail PHP. Deskriptor mesti memberikan maklumat asas tentang apa yang dilakukan oleh plugin, yang menciptanya, dan maklumat lesennya. Inilah yang digunakan WordPress untuk mengenal pasti bahawa plugin hadir dan bersedia untuk diaktifkan. Plugin Contoh ini akan mengandungi definisi di bahagian atas fail yang diletakkan di direktori phpmaster_exampleWidget yang baru dibuat. Nama fail juga sewenang -wenangnya tetapi disarankan untuk memberikan nama makna. Contoh ini akan memanggil fail widget_init.php.
<span><span><?php
</span></span><span><span>/* 
</span></span><span><span>Plugin Name: Simple Text Plugin
</span></span><span><span>Plugin URI: http://www.example.com/textwidget
</span></span><span><span>Description: An example plugin to demonstrate the basics of putting together a plugin in WordPress
</span></span><span><span>Version: 0.1 
</span></span><span><span>Author: Tim Smith 
</span></span><span><span>Author URI: http://www.example.com
</span></span><span><span>License: GPL2 
</span></span><span><span>
</span></span><span><span>    Copyright 2011  Tim Smith
</span></span><span><span>
</span></span><span><span>    This program is free software; you can redistribute it and/or
</span></span><span><span>    modify it under the terms of the GNU General Public License,
</span></span><span><span>    version 2, as published by the Free Software Foundation. 
</span></span><span><span>
</span></span><span><span>    This program is distributed in the hope that it will be useful,
</span></span><span><span>    but WITHOUT ANY WARRANTY; without even the implied warranty of 
</span></span><span><span>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
</span></span><span><span>    GNU General Public License for more details. 
</span></span><span><span>
</span></span><span><span>    You should have received a copy of the GNU General Public License 
</span></span><span><span>    along with this program; if not, write to the Free Software 
</span></span><span><span>    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
</span></span><span><span>    02110-1301  USA 
</span></span><span><span>*/</span></span>
Ini adalah struktur yang diperlukan untuk mana -mana plugin yang akan anda buat untuk WordPress. Sekarang apabila anda log masuk dan melihat skrin Pentadbiran Plugin di WordPress, anda akan melihat plugin baru siap untuk pengaktifan.

Pembangunan plugin WordPress Anda dapat melihat semua maklumat yang anda masukkan di bahagian komen yang menerangkan plugin dipaparkan di sini. Anda boleh mengaktifkannya sekarang jika anda mahu, tetapi anda masih perlu menambah beberapa fungsi sebelum melakukan apa -apa. Fail yang mempunyai definisi ini kini dianggap sebagai titik permulaan bagi mana -mana kod yang berkaitan dengan plugin. Kod yang muncul selepas komen definisi akan dilaksanakan memberi anda peluang untuk memulakan plugin dan ciri -cirinya.

widget WordPress

WordPress menyediakan kelas yang anda boleh melanjutkan bernama WP_WIDGET. Apabila anda melanjutkannya, widget anda sendiri akan tersedia untuk mana -mana bar sisi yang ditawarkan tema anda. Kapal WordPress dengan beberapa widget lalai seperti "jawatan terkini" dan "arkib" yang memanjangkan WP_WIDGET. Kelas WP_Widget menyediakan empat kaedah yang harus ditindih:
  • __ construct () - panggil pembina induk dan memulakan mana -mana pembolehubah kelas
  • borang () - Paparkan borang untuk widget dalam paparan admin untuk menyesuaikan sifat widget
  • kemas kini () - Kemas kini sifat widget yang ditentukan dalam borang dalam paparan admin
  • widget () - Paparkan widget di blog

Pembina

Pembina adalah seperti pembina lain yang mungkin anda tulis. Perkara penting yang perlu diingat di sini adalah memanggil pembina induk yang boleh mengambil tiga argumen: pengenalpastian untuk widget, nama mesra widget (ini akan muncul sebagai tajuk widget dalam skrin widget admin), dan array memperincikan sifat widget (yang hanya memerlukan nilai "keterangan").
<span><span><?php
</span></span><span><span>/* 
</span></span><span><span>Plugin Name: Simple Text Plugin
</span></span><span><span>Plugin URI: http://www.example.com/textwidget
</span></span><span><span>Description: An example plugin to demonstrate the basics of putting together a plugin in WordPress
</span></span><span><span>Version: 0.1 
</span></span><span><span>Author: Tim Smith 
</span></span><span><span>Author URI: http://www.example.com
</span></span><span><span>License: GPL2 
</span></span><span><span>
</span></span><span><span>    Copyright 2011  Tim Smith
</span></span><span><span>
</span></span><span><span>    This program is free software; you can redistribute it and/or
</span></span><span><span>    modify it under the terms of the GNU General Public License,
</span></span><span><span>    version 2, as published by the Free Software Foundation. 
</span></span><span><span>
</span></span><span><span>    This program is distributed in the hope that it will be useful,
</span></span><span><span>    but WITHOUT ANY WARRANTY; without even the implied warranty of 
</span></span><span><span>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
</span></span><span><span>    GNU General Public License for more details. 
</span></span><span><span>
</span></span><span><span>    You should have received a copy of the GNU General Public License 
</span></span><span><span>    along with this program; if not, write to the Free Software 
</span></span><span><span>    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
</span></span><span><span>    02110-1301  USA 
</span></span><span><span>*/</span></span>
Dengan struktur widget asas di tempat, anda akan mahu mendaftarkan widget dan pastikan ini dilakukan pada masa semua widget lain sedang dimulakan. Mendaftarkan widget dilakukan melalui fungsi register_widget () yang mengambil hujah tunggal, nama kelas yang memanjangkan wp_widget. Panggilan ini untuk mendaftarkan widget mesti dipanggil pada masa yang sesuai, jadi cangkuk WordPress tertentu yang anda mahu gunakan dipanggil "widgets_init". Untuk mengaitkan mendaftarkan widget dengan cangkuk, anda menggunakan add_action () yang mengambil nama cangkuk sebagai hujah pertama dan fungsi untuk dilaksanakan sebagai yang kedua. (Hujah kedua boleh menjadi nama rentetan fungsi atau penutupan.) Kod ini harus terus di bawah deskriptor plugin yang dicipta dalam widget_init.php.
<span><span><?php
</span></span><span><span>class TextWidget extends WP_Widget
</span></span><span><span>{
</span></span><span>    <span>public function __construct() {
</span></span><span>        <span><span>parent::</span>__construct("text_widget", "Simple Text Widget",
</span></span><span>            <span>array("description" => "A simple widget to show how WP Plugins work"));
</span></span><span>    <span>}
</span></span><span><span>}</span></span>
Sekarang bahawa ia telah didaftarkan dan dimulakan, anda akan dapat melihat widget anda tersedia untuk digunakan.

Kaedah () Kaedah

Widget Contoh di sini harus membolehkan anda memasukkan tajuk dan beberapa teks yang akan dipaparkan apabila dilihat di blog, jadi untuk dapat meminda kedua -dua aspek widget yang anda perlukan untuk membuat borang untuk meminta nilai -nilai ini. Kaedah Borang () digunakan dalam skrin Pentadbiran Widget untuk memaparkan medan yang kemudiannya boleh digunakan untuk mengubah fungsi widget di laman web itu sendiri. Kaedah ini mengambil satu hujah, pelbagai $ pembolehubah yang berkaitan dengan widget. Apabila borang diserahkan, widget akan memanggil kaedah kemas kini () yang membolehkan anda mengemas kini medan dalam $ contoh dengan nilai baru. Kemudian, widget () akan dipanggil dan akan menggunakan contoh $ untuk memaparkan nilai -nilai.
<span><span><?php
</span></span><span><span>add_action("widgets_init",
</span></span><span>    <span>function () { register_widget("TextWidget"); });
</span></span><span><span>?></span></span>
Anda menggunakan kaedah wp_widget's get_field_id () dan get_field_name () untuk membuat ID dan nama untuk medan borang masing -masing. WordPress akan menjana pengecam unik untuk anda supaya tidak bertembung dengan widget lain yang digunakan, dan apabila borang diserahkan nilai -nilai akan mengemas kini item array Instance $ yang berkaitan. Anda boleh menggunakan hujah Instance $ yang diluluskan untuk mengisi medan borang dengan nilai sekiranya mereka sudah ditetapkan. Inilah bentuk yang kelihatan seperti dalam pandangan admin:

Pembangunan plugin WordPress Elemen

induk itu sendiri, butang simpan, dan pautan memadam dan menutup dijana untuk anda secara automatik oleh WordPress sehingga tidak perlu secara eksplisit kod mereka. Borang ini akan menyiarkan pembolehubah dan memanggil kaedah kemas kini () supaya nilai -nilai baru boleh dimasukkan ke dalam $ contoh.

kaedah kemas kini ()

Kemas kini () Memberi peluang untuk mengesahkan dan membersihkan pembolehubah contoh sebelum digunakan oleh widget. Di sini anda boleh membuat keputusan berdasarkan nilai lama dan mengemas kini nilai -nilai baru dengan sewajarnya. UPDATE () mesti mengembalikan array yang mengandungi item yang anda harapkan untuk digunakan semasa memaparkan widget. WordPress meluluskan dua hujah kepadanya, array dengan nilai contoh baru dari bentuk, dan array dengan nilai contoh asal.
<span><span><?php
</span></span><span><span>/* 
</span></span><span><span>Plugin Name: Simple Text Plugin
</span></span><span><span>Plugin URI: http://www.example.com/textwidget
</span></span><span><span>Description: An example plugin to demonstrate the basics of putting together a plugin in WordPress
</span></span><span><span>Version: 0.1 
</span></span><span><span>Author: Tim Smith 
</span></span><span><span>Author URI: http://www.example.com
</span></span><span><span>License: GPL2 
</span></span><span><span>
</span></span><span><span>    Copyright 2011  Tim Smith
</span></span><span><span>
</span></span><span><span>    This program is free software; you can redistribute it and/or
</span></span><span><span>    modify it under the terms of the GNU General Public License,
</span></span><span><span>    version 2, as published by the Free Software Foundation. 
</span></span><span><span>
</span></span><span><span>    This program is distributed in the hope that it will be useful,
</span></span><span><span>    but WITHOUT ANY WARRANTY; without even the implied warranty of 
</span></span><span><span>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
</span></span><span><span>    GNU General Public License for more details. 
</span></span><span><span>
</span></span><span><span>    You should have received a copy of the GNU General Public License 
</span></span><span><span>    along with this program; if not, write to the Free Software 
</span></span><span><span>    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
</span></span><span><span>    02110-1301  USA 
</span></span><span><span>*/</span></span>
WordPress akan berterusan nilai -nilai ini untuk anda jadi tidak perlu melaksanakan fungsi tersebut.

kaedah widget ()

Kaedah widget () digunakan untuk memaparkan kandungan dalam widget apabila ia muncul di bar sisi di blog anda. Output dari kaedah akan menjadikan halaman blog. WordPress melepasi kaedah widget () dua argumen: yang pertama adalah $ args yang merupakan maklumat perincian array mengenai widget, dan yang kedua adalah contoh $ yang boleh anda gunakan untuk mendapatkan output data yang berkaitan dengan widget. $ args benar -benar tidak akan menjejaskan contoh ini supaya saya tidak akan masuk ke dalamnya; Hanya ingat $ contoh adalah hujah kedua.
<span><span><?php
</span></span><span><span>class TextWidget extends WP_Widget
</span></span><span><span>{
</span></span><span>    <span>public function __construct() {
</span></span><span>        <span><span>parent::</span>__construct("text_widget", "Simple Text Widget",
</span></span><span>            <span>array("description" => "A simple widget to show how WP Plugins work"));
</span></span><span>    <span>}
</span></span><span><span>}</span></span>
Ini akan menghasilkan output yang mungkin berikut di laman web ini:

Pembangunan plugin WordPress Dan itu sahaja! Meletakkan semua ini bersama -sama akan memberi anda widget yang sangat mudah untuk memaparkan teks di sisi blog pemasangan WordPress.

Ringkasan

Anda kini biasa dengan asas yang diperlukan untuk plugin WordPress yang memastikan WordPress dapat mengesan dan mengaktifkannya, dan memperluaskan kelas WP_WIDGET untuk membuat widget anda sendiri. Widget contoh yang dibentangkan dalam artikel ini menunjukkan keupayaan menyesuaikan paparan widget melalui borang konfigurasi yang disediakan oleh admin. Walaupun mudah, ia menyerlahkan kaedah WP_WIDGET asas yang akan anda gunakan dan anda dengan mudah dapat bergerak dari contoh ini dan membuat fungsi yang lebih besar untuk laman web yang didorong oleh WordPress anda sendiri. Kod untuk contoh ini boleh didapati di bawah akaun GitHub PHPMaster supaya anda dapat melihat kod itu keseluruhannya. imej melalui bioraven / shutterstock

soalan yang sering ditanya mengenai pembangunan plugin WordPress

Bagaimana saya mula membangunkan plugin WordPress? Sebaik sahaja anda mempunyai kemahiran ini, anda boleh memulakan dengan membuat folder baru dalam direktori plugin WordPress anda. Namakan folder ini selepas plugin anda. Di dalam folder ini, buat fail PHP dengan nama yang sama. Fail ini akan berfungsi sebagai fail utama untuk plugin anda. Dalam fail ini, anda perlu memasukkan komen header yang memberitahu WordPress bahawa plugin wujud di sini. Selepas menubuhkan struktur asas, anda boleh mula menulis fungsi plugin anda.

Apakah amalan terbaik untuk pembangunan plugin WordPress? Menggunakan konvensyen penamaan yang betul untuk mengelakkan konflik nama fungsi dengan plugin lain, menggunakan cangkuk WordPress dan penapis jika mungkin, memastikan plugin anda selamat dengan mengesahkan dan membersihkan input pengguna, dan menjadikan plugin anda diterjemahkan untuk mencapai khalayak yang lebih luas. Ia juga penting untuk memastikan kod anda bersih dan baik untuk rujukan dan kemas kini masa depan. Tema boleh mencabar kerana banyak tema yang ada. Walau bagaimanapun, mematuhi piawaian pengekodan WordPress, menggunakan cangkuk dan penapis dan bukannya mengubah fail teras, dan menguji plugin anda dengan tema yang berbeza dapat membantu memastikan keserasian. Ia juga disyorkan untuk menyediakan dokumentasi dan sokongan yang jelas untuk pengguna plugin anda.

Bagaimana saya boleh debug plugin WordPress saya?

Debugging plugin WordPress anda melibatkan mengenal pasti dan menetapkan sebarang masalah atau kesilapan yang mungkin timbul semasa pembangunannya. WordPress dilengkapi dengan sistem debugging terbina dalam yang boleh anda aktifkan dalam fail WP-Config.php anda. Dengan menetapkan WP_DEBUG untuk benar, anda boleh memaparkan ralat PHP di hujung depan laman web anda. Di samping itu, menggunakan IDE PHP dengan debugger dapat membantu anda melangkah melalui kod anda dan mencari masalah dengan lebih cekap. Plugin WordPress melibatkan beberapa langkah. Pertama, sentiasa mengesahkan dan membersihkan input pengguna untuk mengelakkan serangan suntikan SQL. Kedua, gunakan nonces untuk mengesahkan sumber permintaan. Ketiga, gunakan kebenaran fail yang betul dalam fail plugin anda. Keempat, gunakan fungsi API WordPress untuk manipulasi data dan bukan pertanyaan SQL tersuai. Akhir sekali, kerap mengemas kini dan menguji plugin anda untuk sebarang kelemahan keselamatan yang berpotensi. T memberi kesan negatif terhadap kelajuan pemuatan laman web, kerana ini merupakan faktor utama dalam SEO. Juga, jika plugin anda menambah kandungan ke laman web, pastikan ia mudah merangkak dan boleh diindeks oleh enjin carian. Jika plugin anda melibatkan imej, pastikan untuk menambah tag alt. Akhir sekali, pastikan plugin anda serasi dengan plugin SEO yang popular.

Bagaimana saya mengemas kini plugin WordPress saya? Nombor dalam komen pengepala plugin anda. Sebaik sahaja anda telah menguji versi yang dikemas kini dan memastikan ia berfungsi dengan betul, anda boleh memuat naiknya ke repositori plugin WordPress. Sekiranya plugin anda dihoskan di repositori plugin WordPress, pengguna akan dimaklumkan mengenai kemas kini di papan pemuka WordPress mereka. Mesra pengguna melibatkan menyediakan dokumentasi yang jelas dan terperinci, termasuk tangkapan skrin atau video jika perlu. Juga, pastikan tetapan dan pilihan plugin anda intuitif dan mudah difahami. Menyediakan sokongan yang cepat dan berguna juga boleh meningkatkan pengalaman pengguna.

Bagaimana saya menguji plugin WordPress saya? Anda boleh menggunakan alat ujian automatik seperti PHPUNIT untuk ujian unit. Juga, pertimbangkan untuk menggunakan alat debugging untuk mengenal pasti sebarang kesilapan atau isu. Ia juga merupakan idea yang baik untuk mempunyai penguji beta yang dapat memberikan maklum balas sebelum anda melepaskan plugin anda.

Bagaimana saya boleh mengewangkan plugin WordPress saya?

Terdapat beberapa cara untuk mengewangkan plugin WordPress anda. Anda boleh menawarkan versi percuma dengan ciri asas dan versi premium dengan ciri canggih. Anda juga boleh menawarkan tambahan untuk plugin percuma anda. Pilihan lain adalah untuk menawarkan plugin anda secara percuma dan memberikan sokongan berbayar atau perkhidmatan pembangunan tersuai.

Atas ialah kandungan terperinci Pembangunan plugin WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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