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-pluginmy-plugin.php
Metode Model View Controller (MVC)
/wp-content/plugins/my-plugin/controllerController.php
/modelModel.php
/viewview.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/adminadmin.php
/assetscss/images/
/classesmy-class.php
/langmy-es_ES.mo
/templatesmy-template.php
/widgetsmy-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/partialsmy-plugin-admin.php
/includesmy_plugin_activator.phpmy_plugin_deactivator.phpmy_plugin_i18n.phpmy_plugin_loader.phpmy_plugin.php
/languagesmy_plugin.pot
/public/css/js/partialsmy-plugin-public.php
LICENSE.txtREADME.txtindex.phpmy-plugin.phpuninstall.php
Metode yang terorganisir secara longgar
/wp-content/plugins/my-plugincss/images/js/my-admin.phpmy-class.phpmy-template.phpmy-widget.phpmy-plugin.php
css/, images/dan js/akan styles/, images/, dan scripts/.