Ini bukan pertanyaan tentang bagaimana membangun plugin WordPress. Alih-alih, apa, jika ada, panduan dapat diterapkan pada cara menyusun arsitektur file plugin apa pun.
Beberapa bahasa atau pustaka pemrograman lain memiliki cara yang sangat terkontrol dalam mengatur direktori dan file. Terkadang hal ini menjengkelkan dan menyoroti kebebasan yang ditawarkan PHP, tetapi di sisi lain plugin WordPress disatukan dengan cara apa pun yang ditentukan oleh penulisnya.
Tidak ada jawaban yang benar , tetapi harapan saya adalah untuk memperbaiki bagaimana saya, dan orang lain, membangun plugin untuk membuatnya lebih ramah bagi pengembang lain untuk diseksi, lebih mudah untuk debug, lebih mudah dinavigasi, dan mungkin lebih efisien.
Pertanyaan terakhir: menurut Anda apa cara terbaik untuk mengatur plugin?
Berikut adalah beberapa struktur sampel, tetapi daftar lengkapnya sama sekali tidak lengkap. Jangan ragu untuk menambahkan rekomendasi Anda sendiri.
Diasumsikan Struktur Default
/wp-content
/plugins
/my-plugin
my-plugin.php
Metode Model View Controller (MVC)
/wp-content
/plugins
/my-plugin
/controller
Controller.php
/model
Model.php
/view
view.php
my-plugin.php
Tiga bagian MVC:
- The Model berinteraksi dengan database, query dan menyimpan data, dan berisi logika.
- The kontroler akan berisi tag template dan fungsi bahwa pandangan akan memanfaatkan.
- The pandangan bertanggung jawab untuk menampilkan data yang diberikan oleh model yang dibangun oleh controller.
Diatur berdasarkan metode jenis
/wp-content
/plugins
/my-plugin
/admin
admin.php
/assets
css/
images/
/classes
my-class.php
/lang
my-es_ES.mo
/templates
my-template.php
/widgets
my-widget.php
my-plugin.php
Plugin WordPress Boilerplate
Tersedia di Github
Berdasarkan pada API Plugin , Standar Pengkodean , dan Standar Dokumentasi .
/wp-content
/plugins
/my-plugin
/admin
/css
/js
/partials
my-plugin-admin.php
/includes
my_plugin_activator.php
my_plugin_deactivator.php
my_plugin_i18n.php
my_plugin_loader.php
my_plugin.php
/languages
my_plugin.pot
/public
/css
/js
/partials
my-plugin-public.php
LICENSE.txt
README.txt
index.php
my-plugin.php
uninstall.php
Metode yang terorganisir secara longgar
/wp-content
/plugins
/my-plugin
css/
images/
js/
my-admin.php
my-class.php
my-template.php
my-widget.php
my-plugin.php
css/
, images/
dan js/
akan styles/
, images/
, dan scripts/
.